查詢同時涉及兩個以上的表,稱為連接查詢。包括等值連接查詢,自然連接查詢,非等值連接查詢,自身連接查詢,外連接查詢和復合條件連接查詢等
1.等值與非等值連接查詢
where 子句中連接兩個表的條件稱為連接條件 如 Student.Sname=Sc.Sno
比較運算符有= > < <= >= != <> 。當連接運算符為=時,稱為等值連接。其他運算符稱為非等值連接。
注意:連接查詢的結果是把多張關系表合成一張大表,篩選出滿足條件的元組。
2.自然連接
把目標列中的重復列去掉稱為自然連接(顯示查詢想要的結果)
如: select Student.Sno,Student.Ssex,SC.Cno
from Student,SC
where Student.Sno=SC.Sno;
建議每個例都加上表名,增強可閱讀性。
3.自身連接
表與自己進行連接稱為自身連接。為此需要給表取別名
4.外連接(笛卡爾積)
把被舍棄的懸浮元組保存在結果關系中(指不滿足條件的元組), 外連接分為左連接和右連接
左連接: select Student.*,SC.* from Student left outer join SC on (Student.Sno=SC.Sno); 把左邊Student表中不符合條件的元組也保存在結果關系表中,右反之
5.多表連接
連接兩張表以上表的查詢
如: select Student.Sno,Student.Ssex,SC.Cno,Course.Grade
from Student,SC, Course
where Student.Sno=SC.Sno and Sc.Cno=Course.Cno;
