SQL技巧:等值連接與自然連接的區別

  • 等值連接:inner join
  • 自然連接:  out join, left join,right join

等值連接

連接join 是從兩個關係的笛卡兒積中選取屬性間滿足一定條件的元組。

連接運算中有兩種最爲重要也最爲常用的連接,一種是等值連接,一種是外連接。

等值連接

關係R與關係S 等值連接後的結果

 自然連接

自然連接:是一種特殊的等值連接,它要求兩個關係進行比較的分量必須是相同的屬性組,並且在結果集中將重複屬性列去掉。

2008年軟件設計師考試的題目:若關係R、S如下所示,則R與S自然連接後的屬性列數和元組個數分別爲()

R:

A B C D

a b c d

a c d c

a d g f

a b g f

 

S:

C D

c d

g f

分析,首先進行比較,容易得出R中有三個元組(即三行,1、3、4行)符合條件,所以元組個數爲3,再然後去掉重複的列,顯然仍然剩下A、B、C、D四個列。

自然連接(natural join)

自然連接是一種特殊的等值連接。比較兩幅圖就可以看出,自然連接在結果中把重複的屬性列去掉。

一般的連接操作是從行的角度進行運算,但是自然連接還需要取消重複列,所以是同時從行和列的角度進行運算。

在關係數據庫中,數據庫的重構往往是不可避免的。重構數據庫最常見的是將一個基本表“垂直”地分成多個基本表。例如:將學生關係:

Student(Sno, Sname, Ssex, Sage, Sdept)

分爲SX(Sno, Sname, Sage)和SY(Sno, Ssex, Sdept)兩個關係。這時原表Student爲SX表和SY表自然連接的結果。

-------------------------------------------------------

外連接(outer join)

 

左外連接(Left Outer Join)

Left Join 就是一定要把左邊保證了,右邊沒有的就填NULL

 

右外連接(Right Outer Join)

Right Join 就是一定要把右邊保證了,左邊沒有的就填NULL

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