关系代数SQL实现

来源:IT165收集  发布日期:2015-05-03 11:55:20
一、传统的集合运算与SQL语句实现
传统的集合运算包括四种运算:并(∪)、交(∩)、差(—)、广义笛卡尔(X)。


并运算(Union)
对应的SQL语句:
Select * from R Union Select * from S;


交运算(Intersect)
对应的SQL语句:
Select * from R Intersect Select * from S;


差运算(Except)
对应的SQL语句:
Select * from R Except Select * from S;


注意:对于并、交与差元算,都要求关系R和关系S具有相同的目n,且相应的属性取自同一个域。


笛卡尔积R×S运算(Extended Cartesian Product)
对应的SQL语句:
Select * from R,S;


二、专门的关系运算
专门的关系运算包括四种运算即选择(σ)、投影(Π)、连接(∞)和除法(÷),
是关系数据库数据维护、查询、统计等操作的基础。


选择(Selection)
设有关系R,在关系R中求取满足给定条件F的元组组成新的关系的运算称为选择。记作σF(R)。
其中F是一个条件表达式,其值为“真”或“假”。σF(R)是从关系R中选取使条件表达式F为真的元组。
对应的SQL语句:
SELECTR.学号,R.课程名,R.分数 from R WHERE 分数>85


投影(Projection)
设有关系R,在关系R中求指定的若干个属性列组成新的关系的运算称作投影,记作ΠA(R),
其中A为欲选取的属性列列名的列表。
对应的SQL语句:
若关系运算式为:П品名,数量(R)
SELECT 品名,数量 FROM R;


连接(Join)
从两个分别为n,m目的关系R和S的广义笛卡尔积中选取满足给定条件F的元组组成新的关系称为R和S的连接,记作R∞FS(F=AθB)。其中A和B分别为R和S上度数相等且可比的属性列,θ是算术比较符(>,≥,<,≤,=,≠)。即连接运算就是从两个关系的笛卡尔积中选取满足一定连接条件的元组的集合,连接的结果是一个(k1+k2)元的关系。对应的SQL语句:
Select * from R,S where R.A=S.C;


除(Division)
给定关系R(x,y)与S(y)其中x,y为属性集(也可为单属性),R中的y和S中的y是同名的属性(集)也可以有不同的属性名,
但必须出自相同的域集。在求解R÷S时,对R按x的值的分组,然后检查每一组,如某一组中的y包含S中全部的y,则取该组中的x的值作为关系P中的一个元组,否则不取。
R÷S的商等于关系P。对应于SQL语言:
SELECT DISTINCT A.Name FROM R AS A WHERE NOT EXISTS
(SELECT * FROM S AS B WHERE NOT EXISTS (SELECT * FROM R AS C where C.Name=A.Name and B.City=C.City))
GROUPBYA.Name
Tag标签: 代数  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规