关系代数SQL实现
来源:程序员人生 发布时间:2015-05-22 07:52:24 阅读次数:4656次
1、传统的集合运算与SQL语句实现
传统的集合运算包括4种运算:并(∪)、交(∩)、差(―)、广义笛卡尔(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,且相应的属性取自同1个域。
笛卡尔积R×S运算(Extended Cartesian Product)
对应的SQL语句:
Select * from R,S;
2、专门的关系运算
专门的关系运算包括4种运算即选择(σ)、投影(Π)、连接(∞)和除法(÷),
是关系数据库数据保护、查询、统计等操作的基础。
选择(Selection)
设有关系R,在关系R中求取满足给定条件F的元组组成新的关系的运算称为选择。记作σF(R)。
其中F是1个条件表达式,其值为“真”或“假”。σ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上度数相等且可比的属性列,θ是算术比较符(>,≥,<,≤,=,≠)。即连接运算就是从两个关系的笛卡尔积当选取满足1定连接条件的元组的集合,连接的结果是1个(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的值的分组,然后检查每组,如某1组中的y包括S中全部的y,则取该组中的x的值作为关系P中的1个元组,否则不取。
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
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
------分隔线----------------------------
------分隔线----------------------------