一篇文章帶你瞭解數據庫中JOIN的用法

這篇文章主要給大家介紹了關於數據庫中JOIN的用法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用數據庫具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

本章主要介紹數據庫中Join的的用法,也是我們在使用數據庫時非常基礎的一個知識點。本次會介紹數據庫中的 inner join、 left join、 right 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;

查詢結果

左外連接——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。

這裏我們就不做介紹了。

文末

本章節主要介紹了Iterable與Iterator之間的區別與聯繫,以及其他方面的小知識點,也是面試過程中會出現的內容點。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章