數據庫:笛卡爾積、內連接、左連接、右連接

在關係型數據庫中經常用到多表查詢操作,因此連接(join)就是一種非常重要的手段。

在學習中使用兩個表進行輔助瞭解 employee 員工表,department 部門表

employee 

department

1.笛卡爾積

笛卡爾積在SQL中的實現方式既是交叉連接(Cross Join)。所有連接方式都會先生成臨時笛卡爾積表,笛卡爾積是關係代數裏的一個概念,表示兩個表中的每一行數據任意組合,下圖中兩個表連接即爲笛卡爾積(交叉連接)

select * from employee INNER JOIN department 

當沒有任何限制條件的時候,此時查詢出的結果就是笛卡爾乘積後的結果。然而如果對於查詢結果沒有任何限制條件的話,會使結果非常雜亂沒有任何實際意義,這就需要我們添加限制條件篩選出有價值的信息。

2.內連接

在笛卡爾積中得到的數據中再取符合條件的數據

select e.id,e.name,e.depid,d.id,d.name
from employee e,department d
WHERE e.depid = d.id;

內連接查詢中的限制條件,取到的數據就是表中同時滿足限制條件的數據,對於單表來說,內連接取的是兩表中滿足條件的交集

3.左外連接

是指以左邊的表的數據爲基準,去匹配右邊的表的數據,如果匹配到就顯示,匹配不到就顯示爲null。

關鍵字left outer join,等效於left join,在關聯查詢中,做外連接查詢就是左連接查詢,兩者是一個概念。

select e.id,e.name,e.depid,d.name 
from employee e left join department d 
on e.depid = d.id

on之後的條件,emloyee 左連接department的限制條件

4.右外連接

類似於左外連接,右外連接是以右邊的表爲基準匹配左邊的表,如果匹配到就顯示,匹配不到就顯示null

select e.id,e.name,e.depid,d.name 
from employee e right join department d 
on e.depid = d.id

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章