帶你了解數據庫中JOIN的用法


前言

歡迎關注公眾號:Coder編程
獲取最新原創技術文章和相關免費學習資料,隨時隨地學習技術知識!

本章主要介紹數據庫中Join的的用法,也是我們在使用數據庫時非常基礎的一個知識點。本次會介紹數據庫中的inner joinleft joinright join 的用法以及它們之間的區別。 文章如有錯誤還請大家及時指出~

以下都是采用mysql數據庫

Join

相信大家在學習數據庫的使用時,都有使用過Join,對數據庫中的兩張或兩張以上表進行連接操作。
Join 分為:

  • 內連接(inner join)
  • 外連接(outer join)

其中外連接分為:

  • 左外連接(left outer join)
  • 右外連接(right outer join)
  • 全外連接(full outer join)

說明:

1.其中外連接的“OUTER”關鍵字可以省略不寫。
2.內連接用於返回滿足連接條件的記錄;而外連接則是內連接的擴展,它不僅會滿足連接條件的記錄,而且還會返回不滿足連接條件的記錄。

笛卡爾積

在我們進行多表聯合查詢的時候會出現的一種情況——笛卡爾積現象

我們以下面兩張表舉例:

學生表(Student)

ID StudentName StudentClassID
1 小明 1
2 小紅 2
3 小蘭 3
4 小呂 2
5 小梓 1

班級表(Class)

ClassID ClassName
1 軟件一班
2 軟件二班
3 軟件三班

當我們進行查詢操作的時候:

select * from Student,Class;


查詢

就會出現上面的情況,也就是笛卡爾現象,表Student中有5條記錄,表Class中有3條記錄,那么對於表Student而言有5種選擇,對於表Class來說有3種選擇。所以一共有 5 * 3 = 15種選擇了,也就是笛卡爾積


內連接——inner join

內連接查詢返回滿足條件的所有記錄,默認情況下沒有指定任何連接則為內連接。
例如:查詢xx學生在xx班級 沿用上面的數據表

select stu.StudentName,cl.ClassName from Student stu inner join Class cl on stu.StudentClassID=cl.ClassID;


查詢結果

inner join

左外連接——left join

左外連接查詢不僅返回滿足條件的所有記錄,而且還會返回不滿足連接條件的連接操作符左邊表的其他行。
我們在原Student 表中新增學生:小美
新增學生-小美
例如: 查詢xx學生在xx班級 沿用上面的數據表

select stu.StudentName,cl.ClassName from Student stu left join Class cl on stu.StudentClassID=cl.ClassID;


查詢結果

左外連接

右外連接——right join

右外連接查詢不僅返回滿足條件的所有記錄,而且還會返回不滿足連接條件的連接操作符右邊表的其他行。
我們在原Class表中新增班級:軟件四班

新增班級_軟件四班

例如: 查詢xx學生在xx班級 沿用上面的數據表

select stu.StudentName,cl.ClassName from Student stu right join Class cl on stu.StudentClassID=cl.ClassID;


查詢結果

查詢結果

全連接——full join

全連接查詢不僅返回滿足條件的所有記錄,而且還會返回不滿足連接條件的其他行。

注:mysql默認不支持full join。

這里我們就不做介紹了。


文末

歡迎關注個人微信公眾號:Coder編程
獲取最新原創技術文章和免費學習資料,更有大量精品思維導圖、面試資料、PMP備考資料等你來領,方便你隨時隨地學習技術知識!
新建了一個qq群:315211365,歡迎大家進群交流一起學習。謝謝了!也可以介紹給身邊有需要的朋友。

文章收錄至
Github: https://github.com/CoderMerlin/coder-programming
Gitee: https://gitee.com/573059382/coder-programming
歡迎關注並star~
微信公眾號

推薦閱讀

一篇讓你理解進程與線程的區別與聯系

通過“表白”的方式,讓我們快速了解網絡協議

一篇帶你讀懂TCP之“滑動窗口”協議

參考文章:

https://www.cnblogs.com/jackson-zhangjiang/p/7819634.html

http://www.360doc.com/content/14/1229/21/7635_436727229.shtml


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM