您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“MySQL連接查詢是什么”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“MySQL連接查詢是什么”這篇文章吧。
內連接INNERJOIN是最常用的連接操作。從數學的角度講就是求兩個表的交集,從笛卡爾積的角度講就是從笛卡爾積中挑出ON子句條件成立的記錄。
在我看來內連接和等值連接差不多,自然連接是內連接中的一個特殊連接
什么是自然連接?
自然連接(Naturaljoin)是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且在結果中把重復的屬性列去掉。
什么是等值連接?
等值連接是關系運算-連接運算的一種常用的連接方式。是條件連接(或稱θ連接)在連接運算符為“=”號時,即θ=0時的一個特例
舉例分析:
表aaa
表bbb:
查詢表aaa和表bbb中屬性C B D相等的數據
等值連接查詢:
SElect*from aaa,bbb WHERE aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E
結果:
自然連接查詢:
-- 自然連接用關鍵字 natural join SELECT*from aaa natural join bbb;
結果:
由上面兩個結果可以看出,等值連接就是從兩個表數據的交集中取指定值相等的數據。而自然連接就是取兩個表中相同屬性,并且值相等的數據,而且消除了相同屬性列。
第一種:where
SElect*from aaa,bbb WHERE aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E
第二種:inner join
select*from aaa inner join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;
第三種:join
select*from aaa join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;
第四種:STRAIGHT_JOIN
select*from aaa STRAIGHT_JOIN bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;
后面三種效果一樣,第三種可以理解為第二種的縮寫。第四種和第二種主要區別是插入方式不同,第四種性能略低
外連接分為三種:左外連接,右外連接,全外連接。對應SQL:LEFT/RIGHT/FULL OUTER JOIN。
什么是左連接?
左連接LEFT JOIN的含義就是求兩個表A表和B表的交集外加左表剩下的數據。依舊從笛卡爾積的角度講,就是先從笛卡爾積中挑出ON子句條件成立的記錄,然后加上左表A表中剩余的記錄
代碼實現:
select*from aaa left join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;
結果:
什么是左連接?
同理右連接RIGHT JOIN就是求兩個表A和B表的交集外加右表B剩下的數據。再次從笛卡爾積的角度描述,右連接就是從笛卡爾積中挑出ON子句條件成立的記錄,然后加上右表中剩余的記錄
代碼實現:
select*from aaa right join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;
結果:
全外連接就是求兩個表A和B集合的并集。從笛卡爾積的角度講就是從笛卡爾積中挑出ON子句條件成立的記錄,然后加上左表中剩余的記錄,最后加上右表中剩余的記錄。另外MySQL不支持OUTER JOIN,但是我們可以對左連接和右連接的結果做 UNION 操作來實現。
代碼實現:
select*from aaa left join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E union select*from aaa right join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E
結果:
以上是“MySQL連接查詢是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。