<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • 數據庫內連接和外連接的區別舉例(sql面試必會6題經典)


    本章節向大家介紹如何使用 MySQL 的 JOIN 在兩個或多個表中查詢數據。

    前提如下供后面學習所用:

    查看學生表的全部記錄SELECT * FROM STUDENT;

    蝸牛哥:MySQL表連接使用詳解,內連接,外連接,交叉連接

    查看地址表的全部記錄:SELECT * FROM ADDRESS;

    蝸牛哥:MySQL表連接使用詳解,內連接,外連接,交叉連接

    表連接按照功能大致分為如下三類:

    內連接(INNER JOIN)也稱等值連接

    • 它基于兩個表之間的相等連接,獲取兩個表中字段匹配關系的記錄。

    SELECT * FROM STUDENT A INNER JOIN ADDRESS B ON A.ID=B.A_ID;

    蝸牛哥:MySQL表連接使用詳解,內連接,外連接,交叉連接

    外連接(OUTER JOIN):

    外連接不但返回符合連接和查詢條件的數據行,還返回不符合條件的一些行。

    外連接分三類:

    1、左外連接(LEFT OUTER JOIN):LEFT JOIN是LEFT OUTER JOIN的簡寫

    左(外)連接,左表的記錄將會全部表示出來,而右表只會顯示符合搜索條件的記錄。右表記錄不足的地方均為NULL。

    SELECT * FROM STUDENT A LEFT OUTER JOIN ADDRESS B ON A.ID=B.A_ID

    蝸牛哥:MySQL表連接使用詳解,內連接,外連接,交叉連接

    2、右外連接(RIGHT JOIN):right join是right outer join的簡寫

    與左(外)連接相反,右(外)連接,左表只會顯示符合搜索條件的記錄,而右表的記錄將會全部表示出來。左表記錄不足的地方均為NULL。

    SELECT * FROM STUDENT A RIGHT OUTER JOIN ADDRESS B ON A.ID=B.A_ID

    蝸牛哥:MySQL表連接使用詳解,內連接,外連接,交叉連接

    3、全外連接(FULL OUTER JOIN)

    MySQL 已經沒有全連接了,有的教程上還寫著 full join 但是實現不了,不過可以換一種方式來查詢。

    SELECT * FROM STUDENT A LEFT JOIN ADDRESS B ON A.ID=B.A_ID

    UNION

    SELECT * FROM STUDENT A RIGHT JOIN ADDRESS B ON A.ID=B.A_ID;

    蝸牛哥:MySQL表連接使用詳解,內連接,外連接,交叉連接

    三者的共同點:都返回符合連接條件和查詢條件(即:內連接)的數據行。

    三者的不同點如下:


    1、左外連接還返回左表中不符合連接條件單符合查詢條件的數據行。


    2、右外連接還返回右表中不符合連接條件單符合查詢條件的數據行。


    3、全外連接還返回左表中不符合連接條件單符合查詢條件的數據行,并且還返回右表中不符合 連接條件單符合查詢條件的數據行。

    全外連接實際上是上左外連接和右外連接的數學合集(去掉重復),即“全外=左外 UNION 右外”。


    注意:左表就是在“(LEFT OUTER JOIN)”關鍵字左邊的表。右表就是右邊的了。在三種類型的外連接中,OUTER 關鍵字是可以省略的。

    交叉連接 : 也稱作笛卡爾積。

    它不使用任何匹配或者選取條件,而是直接將一個數據源中的每個行與另一個數據源的每行都一一匹配。

    SELECT * FROM STUDENT A CROSS JOIN ADDRESS B

    等價于:

    SELECT * FROM STUDENT A , ADDRESS B

    蝸牛哥:MySQL表連接使用詳解,內連接,外連接,交叉連接

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费