什么是多表關(guān)聯(lián)查詢,有幾種多表關(guān)聯(lián)查詢的方式,分別是什么?

什么是多表關(guān)聯(lián)查詢?

有時一個查詢結(jié)果需要從兩個或兩個以上表中提取字段數(shù)據(jù),此時需要使用的就是多表關(guān)聯(lián)查詢。

鏈接查詢主要分為三種:內(nèi)鏈接、外鏈接、交叉連接。

內(nèi)鏈接

使用比較運(yùn)算符(包括=、>、<、<>、>=、<=、!> 和!<)進(jìn)行表間的比較操作,查詢與連接條件相匹配的數(shù)據(jù)。根據(jù)所使用的比較方式不同,內(nèi)連接分為等值連接、自然連接和自連接三種。

關(guān)鍵字:INNER JOIN

1.等值連接/相等鏈接:

使用”=“關(guān)系將表連接起來的查詢,其查詢結(jié)果中列出被鏈接表中的所有列,包括其中的重復(fù)列

2.自然鏈接

等值連接中去掉重復(fù)的列,形成的鏈接。

3.自鏈接

如果在一個連接查詢中,涉及到的兩個表是同一個表,這種查詢稱為自連接查詢。

外鏈接

內(nèi)連接只返回滿足連接條件的數(shù)據(jù)行,外連接不只列出與連接條件相匹配的行,而是列出左表(左外連接時)、右表(右外連接時)或兩個表(全外連接時)中所有符合搜索條件的數(shù)據(jù)行。外連接分為左外連接、右外鏈接、全外連接三種。

1.左外連接

關(guān)鍵字:LEFT[OUTER]JOIN

左連接的細(xì)節(jié):返回左表中的所有行,如果左表中行在右表中沒有匹配行,則在相關(guān)聯(lián)的結(jié)果集中右表的所有字段均為NULL。

2.右外連接

關(guān)鍵字:RIGHT[OUTER]JOIN

返回右表中的所有行,如果右表中行在左表中沒有匹配行,則在左表中相關(guān)字段返回NULL值。

3.全外鏈接

關(guān)鍵字:FULL[OUTER]JOIN

返回兩個連接中所有的記錄數(shù)據(jù),是左外鏈接和右外鏈接的并集。

交叉連接/笛卡爾積

關(guān)鍵字:CROSS JOIN

兩個表做笛卡爾積,得到的結(jié)果集的行數(shù)是兩個表中的行數(shù)的乘積。

注意:帶有where條件的子句,往往會先生成兩個表行數(shù)乘積的數(shù)據(jù)表,然后從根據(jù)where條件從中選擇。

當(dāng)數(shù)據(jù)量比價大的時候,笛卡爾積操作會很消耗數(shù)據(jù)庫的性能

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容