歡迎關注公衆號: Coder編程
獲取最新原創技術文章和相關免費學習資料,隨時隨地學習技術知識!
本章主要介紹數據庫中Join的的用法,也是咱們在使用數據庫時很是基礎的一個知識點。本次會介紹數據庫中的inner join
、left join
、right join
的用法以及它們之間的區別。 文章若有錯誤還請你們及時指出~html
如下都是採用mysql數據庫
相信你們在學習數據庫的使用時,都有使用過Join,對數據庫中的兩張或兩張以上表進行鏈接操做。
Join 分爲:mysql
其中外鏈接分爲:git
說明:github
1.其中外鏈接的「OUTER」關鍵字能夠省略不寫。
2.內鏈接用於返回知足鏈接條件的記錄;而外鏈接則是內鏈接的擴展,它不只會知足鏈接條件的記錄,並且還會返回不知足鏈接條件的記錄。
在咱們進行多表聯合查詢的時候會出現的一種狀況—— 笛卡爾積現象
咱們如下面兩張表舉例:sql
學生表(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種選擇了,也就是笛卡爾積。學習
內鏈接查詢返回知足條件的全部記錄,默認狀況下沒有指定任何鏈接則爲內鏈接。
例如:查詢xx學生在xx班級 沿用上面的數據表
spa
select stu.StudentName,cl.ClassName from Student stu
inner join
Class cl on stu.StudentClassID=cl.ClassID;
---
查詢結果
左外鏈接查詢不只返回知足條件的全部記錄,並且還會返回不知足鏈接條件的鏈接操做符左邊表的其餘行。
咱們在原Student 表中新增學生:小美
例如: 查詢xx學生在xx班級 沿用上面的數據表
select stu.StudentName,cl.ClassName from Student stu
left join
Class cl on stu.StudentClassID=cl.ClassID;
查詢結果
右外鏈接查詢不只返回知足條件的全部記錄,並且還會返回不知足鏈接條件的鏈接操做符右邊表的其餘行。
咱們在原Class表中新增班級:軟件四班
例如: 查詢xx學生在xx班級 沿用上面的數據表
select stu.StudentName,cl.ClassName from Student stu right join Class cl on stu.StudentClassID=cl.ClassID;
查詢結果
全鏈接查詢不只返回知足條件的全部記錄,並且還會返回不知足鏈接條件的其餘行。
注:mysql默認不支持full join。
這裏咱們就不作介紹了。
本章節主要介紹了數據庫中JOIN的用法,以及其餘方面的小知識點。
歡迎關注公衆號: Coder編程
獲取最新原創技術文章和相關免費學習資料,隨時隨地學習技術知識!
參考文章:
https://www.cnblogs.com/jacks...
http://www.360doc.com/content...
歡迎你們關注並Star~