更新時(shí)間:2021-01-20 17:05:12 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1179次
連接是關(guān)系數(shù)據(jù)庫(kù)模型的主要特點(diǎn),也是它區(qū)別于其它類(lèi)型數(shù)據(jù)庫(kù)管理系統(tǒng)的一個(gè)標(biāo)志。而連接查詢(xún)則是關(guān)系數(shù)據(jù)庫(kù)中最主要的查詢(xún),主要包括內(nèi)連接、外連接和交叉連接等。在MySQL數(shù)據(jù)庫(kù)中,通過(guò)MySQL連接查詢(xún)可以實(shí)現(xiàn)多個(gè)表查詢(xún)。當(dāng)查詢(xún)數(shù)據(jù)時(shí),通過(guò)連接操作查詢(xún)出存放在多個(gè)表中的不同實(shí)體信息。當(dāng)兩個(gè)或多個(gè)表中存在相同意義的字段時(shí),便可以通過(guò)這些字段對(duì)不同的表進(jìn)行連接查詢(xún)。
4種MySQL連接查詢(xún)主要分為內(nèi)連接查詢(xún)、外連接查詢(xún)、子查詢(xún)、合并查詢(xún)。下面我們來(lái)一一介紹。
1.內(nèi)連接查詢(xún)
內(nèi)連接是一種最常用的連接類(lèi)型。內(nèi)連接查詢(xún)實(shí)際上是一種任意條件的查詢(xún)。使用內(nèi)連接時(shí),如果兩個(gè)表的相關(guān)字段滿(mǎn)足連接條件,就從這兩個(gè)表中提取數(shù)據(jù)并組合成新的記錄,也就是在內(nèi)連接查詢(xún)中,只有滿(mǎn)足條件的元組才能出現(xiàn)在結(jié)果關(guān)系中。
內(nèi)連接的數(shù)據(jù)記錄中,不會(huì)存在字段為NULL的情況。可以簡(jiǎn)單地認(rèn)為,內(nèi)鏈接的結(jié)果就是在左連接或者右連接的結(jié)果中剔除存在字段為NULL的記錄后所得到的結(jié)果。
2.外連接查詢(xún)
連接查詢(xún)將查詢(xún)多個(gè)表中相關(guān)聯(lián)的行,內(nèi)連接時(shí),返回查詢(xún)結(jié)果集合中的僅是符合查詢(xún)條件和連接條件的行。但有時(shí)需要包含沒(méi)有關(guān)聯(lián)的行中數(shù)據(jù),即返回查詢(xún)結(jié)果集合中的不僅包含符合連接條件的行,而且還包括左表(左連接)、右表(右連接)或兩個(gè)邊表中的所有數(shù)據(jù)行。外連接分為左外連接和右外連接;
LEFT JOIN(左連接):返回包括左表中的所有記錄和右表中連接字段相等的記錄
RIGHT JOIN(右連接):返回包括右表中所有記錄和左表中連接字段相等的記錄
左連接的結(jié)果包括LEFT OUTER子句中指定的左表的所有行,而不僅僅是連接列所匹配的行。如果左表的某行在右表中沒(méi)有匹配行,則在相關(guān)聯(lián)的結(jié)果行中右表的所有選擇列表列均為空值。
3.子查詢(xún)
子查詢(xún)是指一個(gè)查詢(xún)語(yǔ)句嵌套在另一個(gè)查詢(xún)語(yǔ)句內(nèi)部的查詢(xún),在SELECT子句中先計(jì)算子查詢(xún),子查詢(xún)結(jié)果作為外層另一個(gè)查詢(xún)的過(guò)濾條件,查詢(xún)可以基于一個(gè)表或者多個(gè)表。子查詢(xún)中常用的操作符有ANY(SOME)、ALL、IN、EXISTS。子查詢(xún)可以添加到SELECT、UPDATE和DELETE語(yǔ)句中,而且可以進(jìn)行多層嵌套。子查詢(xún)中也可以使用比較運(yùn)算符,如“<”、“<=”、“>”、“>=”和“!=”等。本節(jié)將介紹如何在SELECT語(yǔ)句中嵌套子查詢(xún)。
4.合并查詢(xún)
利用UNION關(guān)鍵字,可以給出多條SELECT語(yǔ)句,并將它們的結(jié)果組合成單個(gè)結(jié)果集。合并時(shí)兩個(gè)表對(duì)應(yīng)的列數(shù)和數(shù)據(jù)類(lèi)型必須相同。各個(gè)SELECT語(yǔ)句之間使用UNION或UNION ALL關(guān)鍵字分隔。UNION不使用關(guān)鍵字ALL執(zhí)行時(shí),刪除重復(fù)記錄,所有返回行都是唯一的;使用關(guān)鍵字ALL的作用是不刪除重復(fù)行也不對(duì)結(jié)果進(jìn)行自動(dòng)排序。
以上就是4種MySQL連接查詢(xún)的簡(jiǎn)短介紹,對(duì)于我們了解MySQL連接查詢(xún)起到了承接下文的過(guò)渡作用,但還需要我們?nèi)ケ菊镜?a href="/tutorial_mysql/">MySQL教程中查看更多的相關(guān)知識(shí),才能加深我們的理解,徹底學(xué)會(huì)MySQL連接查詢(xún)。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743