文章出處

1、左外連接(Left outer join/ left join)

      left join是以左表的記錄為基礎的,左表的記錄將會全部表示出來,而右表只會顯示符合搜索條件的記錄。右表記錄不足的地方均為NULL.

用(+)來實現, 這個+號可以這樣來理解: + 表示補充,即哪個表有加號,這個表就是匹配表。所以加號寫在右表,左表就是全部顯示,故是左連接。

例子:select a.*,b.bname from student_drb a, class_drb b where a.bno=b.bno(+)  -------------- 左連接,注意: 用(+) 就要用關鍵字where

2、右外連接(right outer join/ right join)

和left join的結果剛好相反,是以右表為基礎的, 顯示右表的所有記錄,在加上左表和右表匹配的結果。 左表不足的地方用NULL填充.

用(+)來實現, 這個+號可以這樣來理解: + 表示補充,即哪個表有加號,這個表就是匹配表。所以加號寫在左表,右表就是全部顯示,故是右連接。

例子:select a.*,b.bname from student_drb a, class_drb b where a.bno(+)=b.bno ---------------- 右連接,注意: 用(+) 就要用關鍵字where

3、全連接(full join)

        左表和右表都不做限制,所有的記錄都顯示,兩表不足的地方用null 填充。 全外連接不支持(+)這種寫法。

4、等值查詢

例子:select a.*,b.bname from student_drb a, class_drb b where a.bno=b.bno

查詢出的結果是左表和右表中bno字段相等的顯示出來。也即出來的結果肯定比左、右、全連接的結果要少或相等。

5、內聯接查詢   inner join  on (與等值查詢結果是一樣的),但效率要比等值查詢高,因為等值查詢是先笛卡爾積,再根據條件查找。

6、交叉查詢cross join (如果需要條件則用where而不用on)

交叉查詢是用的笛卡爾積,效率較慢select * from student_drb cross join class_drb

等價于select * from student_drb,class_drb


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()