內連接是保證兩個表中所有的行都要滿足連接條件,而外連接則不然。在外連接中,某些不滿條件的列也會顯示出來,也就是說,只限制其中壹個表的行,而不限制另壹個表的行。這種連接形式在許多情況下是非常有用的。外連接只能用於兩個表中。
在Ansi語法形式中,包含下列三種外連接關鍵字:
◆LeftOuterJoin包含了左表中的全部行(表達式中第壹個表)
◆RightOuterJoin包括了右表中的全部行(表達式中第二個表)
◆FullOuterJoin包括了左表和右表中所有不滿足條件的行
在SQLServer連接語法形式中,包括下列兩種外連接運算符:
◆*=包含了左表中的全部行(表達式中第壹個表)
◆=*包括了右表中的全部行(表達式中第二個表)
左外連接和右連接都可以產生同樣的結果,關鍵是看表達式中出現的前後順序。
舉例如下:
b.外連接
b1.左連接
selectcourseso,max(coursename),count(sno)
fromcoursesLEFTJOINgradesONcourseso=gradeso
groupbycourseso
左連接特點:顯示全部左邊表中的所有項目,即使其中有些項中的數據未填寫完全。
左外連接返回那些存在於左表而右表中卻沒有的行,再加上內連接的行。
b2.右連接
與左連接類似
b3.全連接
selectsno,name,major
fromstudentsFULLJOINmajorsONstudents.mno=majors.mno
兩邊表中的內容全部顯示