SQL 等值連接(內連接)、自然連接(Out join,Left join,Right join)的區別


 

 https://www.cnblogs.com/hu-yewen/p/5821645.html

  首先來看自然連接的定義:

 

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

 

      一個簡單的例子,將下列關系R和S進行自然連接:

R:

A    B     C

a    b     c

b    a     d

c    d     e

d    f     g

S:

A    C    D

a    c    d

d    f    g

b    d    g

 

      首先要對兩個關系中相同屬性組的分量進行比較,即比較R.A,R.C和S.A,S.C。 顯然在R中只有第一行和第二行滿足條件,因此進行連接得到結果:

A B C D

a b c d

b a d g

      再來看一道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四個列。

 

========================

https://blog.csdn.net/weixin_38134491/article/details/89415925

SQL 等值連接(內連接)、自然連接(Out join,Left join,Right join)的區別

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

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

 

等值連接

關系R與關系S 等值連接后的結果

 

自然連接(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

 

總結

 

Left join 是 Left outer join 的簡稱
Right join 是 Right outer join 的簡稱

在做自然連接時被舍棄的元組叫懸浮元組(dangling tuple)

Left outer join就是保留了左邊關系R中的懸浮元組
Right outer join就是保留了右邊關系S中的懸浮元組
Outer join就是把懸浮元組保存在結果中,在其他屬性上填NULL

 

==============

 

https://www.cnblogs.com/fnlingnzb-learner/p/6343828.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM