數據庫中的內連接、自然連接、和外連接的區別


數據庫中的內連接、自然連接、和外連接的區別

數據中的連接join分為內連接、自然連接、外連接,外連接又分為左外連接、右外連接、全外連接
在這里插入圖片描述在這里插入圖片描述
當然,這些分類都是在連接的基礎上,是從兩個表中記錄的笛卡爾積中選取滿足連接的記錄。笛卡爾積簡單的說就是一個表里的記錄要分別和另外一個表的記錄匹配為一條記錄,即如果表A有3條記錄,表B也有三條記錄,經過笛卡爾運算之后就應該有3*3即9條記錄。如下表:
在這里插入圖片描述
自然連接(natural join)
自然連接是一種特殊的等值連接,他要求兩個關系表中進行比較的必須是相同的屬性列,無須添加連接條件,並且在結果中消除重復的屬性列。
sql語句:Select …… from 表1 natural join 表2
結果:
在這里插入圖片描述
內連接(inner join)
內連接基本與自然連接相同,不同之處在於自然連接要求是同名屬性列的比較,而內連接則不要求兩屬性列同名,可以用using或on來指定某兩列字段相同的連接條件。
sql語句:Select …… from 表1 inner join 表 2 on 表1.A=表2.E
結果:
在這里插入圖片描述
自然連接時某些屬性值不同則會導致這些元組會被舍棄,那如何保存這些會被丟失的信息呢,外連接就解決了相應的問題。外連接分為左外連接、右外連接、全外連接。外連接必須用using或on指定連接條件。

左外連接(left outer join)
左外連接是在兩表進行自然連接,只把左表要舍棄的保留在結果集中,右表對應的列上填null。
sql語句:Select …… from 表1 left outer join 表2 on 表1.C=表2.C
結果:
在這里插入圖片描述
右外連接(rignt outer join)
右外連接是在兩表進行自然連接,只把右表要舍棄的保留在結果集中,左表對應的列上填null。
Select …… from 表1 rignt outer join 表2 on 表1.C=表2.C
結果:
在這里插入圖片描述
全外連接(full join)
全外連接是在兩表進行自然連接,只把左表和右表要舍棄的都保留在結果集中,相對應的列上填null。
Select …… from 表1 full join 表2 on 表1.C=表2.C
結果:
在這里插入圖片描述


免責聲明!

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



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