內連線和外連線的區別是什麼?

2020-11-20 15:04:51

區別:內連線查詢操作列出與連線條件匹配的資料行;外連線,返回到查詢結果集合中的不僅包含符合連線條件的行,而且還包括左表(左外連線)、右表(右外連線)或兩個邊接表(全外連線)中的所有資料行。

兩個表的連線,是通過將一個表中的一列或者多列同另一個表中的列連結而建立起來的。用來連線兩張表的表示式組成了連線條件。當連線成功後,第二張表中的資料就同第一張表連線起來了,並形成了複合結果集--包括兩張表中資料行的計劃。簡單地說,就是兩張表有了子集,雖然只是暫時的

有兩者基本型別的的連線,inner和outer連線。兩種型別的主要區別在於,即使是在連線條件不滿足的情況下,外部連線也會在結果集內返回行,而內部連線不會在結果集類返回行
當外部連線不滿足連線條件時,通常返回一個表中的列,但是第二個表中沒有返回值--為null

(一)內連線

  內連線查詢操作列出與連線條件匹配的資料行,它使用比較運運算元比較被連線列的列值。內連線分三種:

  1、等值連線:在連線條件中使用等於號(=)運運算元比較被連線列的列值,其查詢結果中列出被連線表中的所有列,包括其中的重複列。

  2、不等連線: 在連線條件使用除等於運運算元以外的其它比較運運算元比較被連線的 列的列值。這些運運算元包括>、>=、<=、<、!>、!<和<>。

  3、自然連線:在連線條件中使用等於(=)運運算元比較被連線列的列值,但它使用選擇列表指出查詢結果集合中所包括的列,並刪除連線表中的重複列。

(二) 外連線

  外連線,返回到查詢結果集合中的不僅包含符合連線條件的行,而且還包括左表(左外連線或左連線))、右表(右外連線或右連線)或兩個邊接表(全外連線)中的所有資料行。

  left join(左聯接) 返回包括左表中的所有記錄和右表中聯結欄位相等的記錄;

  right join(右聯接) 返回包括右表中的所有記錄和左表中聯結欄位相等的記錄;

例如1:

SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b   
   ON a.username=b.username

例如2:

SELECT a.*,b.* 
   FROM city as a FULL OUTER JOIN user as b 
   ON a.username=b.username

更多程式設計相關知識,請存取:!!

以上就是內連線和外連線的區別是什麼?的詳細內容,更多請關注TW511.COM其它相關文章!