內連接和外連接的區別是什么?

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

內連接和外連接的區別是什么?

兩個表的連接,是通過將一個表中的一列或者多列同另一個表中的列鏈接而建立起來的。用來連接兩張表的表達式組成了連接條件。當連接成功后,第二張表中的數據就同第一張表連接起來了,并形成了復合結果集–包括兩張表中數據行的計劃。簡單地說,就是兩張表有了子集,雖然只是暫時的? ?

有兩者基本類型的的連接,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

更多編程相關知識,請訪問:編程學習!!

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享