關(guān)系代數(shù)SQL實(shí)現(xiàn)
來(lái)源:程序員人生 發(fā)布時(shí)間:2015-05-22 07:52:24 閱讀次數(shù):4899次
1、傳統(tǒng)的集合運(yùn)算與SQL語(yǔ)句實(shí)現(xiàn)
傳統(tǒng)的集合運(yùn)算包括4種運(yùn)算:并(∪)、交(∩)、差(―)、廣義笛卡爾(X)。
并運(yùn)算(Union)
對(duì)應(yīng)的SQL語(yǔ)句:
Select * from R
Union Select * from S;
交運(yùn)算(Intersect)
對(duì)應(yīng)的SQL語(yǔ)句:
Select * from R Intersect Select * from S;
差運(yùn)算(Except)
對(duì)應(yīng)的SQL語(yǔ)句:
Select * from R Except Select * from S;
注意:對(duì)并、交與差元算,都要求關(guān)系R和關(guān)系S具有相同的目n,且相應(yīng)的屬性取自同1個(gè)域。
笛卡爾積R×S運(yùn)算(Extended Cartesian Product)
對(duì)應(yīng)的SQL語(yǔ)句:
Select * from R,S;
2、專門的關(guān)系運(yùn)算
專門的關(guān)系運(yùn)算包括4種運(yùn)算即選擇(σ)、投影(Π)、連接(∞)和除法(÷),
是關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)保護(hù)、查詢、統(tǒng)計(jì)等操作的基礎(chǔ)。
選擇(Selection)
設(shè)有關(guān)系R,在關(guān)系R中求取滿足給定條件F的元組組成新的關(guān)系的運(yùn)算稱為選擇。記作σF(R)。
其中F是1個(gè)條件表達(dá)式,其值為“真”或“假”。σF(R)是從關(guān)系R當(dāng)選取使條件表達(dá)式F為真的元組。
對(duì)應(yīng)的SQL語(yǔ)句:
SELECTR.學(xué)號(hào),R.課程名,R.分?jǐn)?shù) from R
WHERE 分?jǐn)?shù)>85
投影(Projection)
設(shè)有關(guān)系R,在關(guān)系R中求指定的若干個(gè)屬性列組成新的關(guān)系的運(yùn)算稱作投影,記作ΠA(R),
其中A為欲選取的屬性列列名的列表。
對(duì)應(yīng)的SQL語(yǔ)句:
若關(guān)系運(yùn)算式為:П品名,數(shù)量(R)
SELECT 品名,數(shù)量 FROM R;
連接(Join)
從兩個(gè)分別為n,m目的關(guān)系R和S的廣義笛卡爾積當(dāng)選取滿足給定條件F的元組組成新的關(guān)系稱為R和S的連接,記作R∞FS(F=AθB)。其中A和B分別為R和S上度數(shù)相等且可比的屬性列,θ是算術(shù)比較符(>,≥,<,≤,=,≠)。即連接運(yùn)算就是從兩個(gè)關(guān)系的笛卡爾積當(dāng)選取滿足1定連接條件的元組的集合,連接的結(jié)果是1個(gè)(k1+k2)元的關(guān)系。對(duì)應(yīng)的SQL語(yǔ)句:
Select * from R,S where R.A=S.C;
除(Division)
給定關(guān)系R(x,y)與S(y)其中x,y為屬性集(也可為單屬性),R中的y和S中的y是同名的屬性(集)也能夠有不同的屬性名,
但必須出自相同的域集。在求解R÷S時(shí),對(duì)R按x的值的分組,然后檢查每組,如某1組中的y包括S中全部的y,則取該組中的x的值作為關(guān)系P中的1個(gè)元組,否則不取。
R÷S的商等于關(guān)系P。對(duì)應(yīng)于SQL語(yǔ)言:
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
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
------分隔線----------------------------
------分隔線----------------------------