關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)能夠?qū)崿F(xiàn)的三種基本關(guān)系運(yùn)算是選擇(從關(guān)系中找出滿足給定條件的元組的操作稱為選擇)、投影(從關(guān)系模式中指定若干個(gè)屬性組成新的關(guān)系)、連接(是關(guān)系的橫向組合)。
選擇
使用比較運(yùn)算符、邏輯運(yùn)算符,挑出滿足條件的元組,運(yùn)算出結(jié)果!
(推薦學(xué)習(xí):MySQL視頻教程)
例子
查詢出工資大于2000的員工的姓名
SELECT ename FROM emp WHERE sal > 2000;
過(guò)程:首先查詢出emp表的所有結(jié)果,使用選擇運(yùn)算篩選得出工資大于2000的結(jié)果,最后使用投影運(yùn)算得出工資大于2000員工的名字!
投影
推薦課程:mysql教程。
投影的運(yùn)算過(guò)程:
首先按照j1,j2,…,jk的順序,從關(guān)系R 中取出列序號(hào)為j1,j2,…,jk(或?qū)傩悦蛄袨锳j1,Aj2,…,Ajk )的k 列,然后除去結(jié)果中的重復(fù)元組,構(gòu)成一個(gè)以Aj1,Aj2,…,Ajk為屬性順序的k目關(guān)系。
簡(jiǎn)單來(lái)說(shuō):取出一個(gè)查詢結(jié)果中某某列,并消除重復(fù)的數(shù)據(jù),這就是投影!
投影是從列的角度進(jìn)行的運(yùn)算
投影的下標(biāo)可是列序號(hào),也可是列屬性名
例子
查詢出所有部門的編號(hào)
SELECT deptno FROM dept;
查詢時(shí)的過(guò)程:先查詢得出dept表的所有結(jié)果,再通過(guò)投影運(yùn)算只提取”deptno”的列數(shù)據(jù),如果 SELECT 后邊跟的是”*”,那么就是投影全部數(shù)據(jù)!
連接運(yùn)算
連接運(yùn)算其實(shí)就在笛卡爾積運(yùn)算的基礎(chǔ)上限定了條件(某列大于、小于、等于某列),只匹配和條件相符合的,從而得出結(jié)果!
自然連接
自然連接就是一種特殊的連接運(yùn)算,它限定的條件是【某列等于某列】。自然連接我們經(jīng)常使用到。消除笛卡爾積其實(shí)就是自然連接了!
例子
SELECT * FROM emp,dept WHERE dept.deptno = emp.deptno;
設(shè)定將dept表的deptno列和emp的deptno列為相同【這就是自然連接】
更多MySQL相關(guān)技術(shù)文章,請(qǐng)?jiān)L問(wèn)MySQL視頻教程欄目進(jìn)行學(xué)習(xí)!