【mysql基礎系列之八】連接查詢

在關係型數據庫設計過程中,實體(表)與實體之間是存在很對關係的(一對一、一對多、多對多)。通常在時間操作的過程中,需要利用這層關係來保護數據的完整性。即連接查詢:將多張表連接到一起進行查詢(會導致記錄數行和字段數列發生改變)。沒有任何條件時,產生笛卡爾積。本質上就是select * from 表1,表2;

連接查詢分類

交叉連接、內連接、外連接(左外連接、右外連接)、自然連接。

交叉連接

原理:依次從第一張表中一次取出每一條記錄,與另一張表中的全部記錄逐個匹配。

語法:表1查詢語句 cross join 表2查詢語句;

內連接

原理:依次從一張表中取出每一條記錄去另外一張表中匹配,根據條件匹配成功了就保留,失敗就不保存。

表1查詢語句 【inner】 join 表2查詢語句 on 匹配條件;


注意:表的設計過程中容易產生同名字段,通常使用:表名.字段名。

外連接

原理:按照某一張表作爲主表(表中所有數據都會保留),根據條件去連接另外一張表作爲從表,從而得到數據。


-- 左外連接(left join)
主表 left join 從表 on 連接條件;

-- 右外連接(right join)
主表 right join 從表 on 連接條件;


using關鍵字

是在連接查詢中用來代替對應的on關鍵字的,進行條件匹配。

原理:使用using的前提是對應的兩張表連接的字段是同名的(類似自然連接自動匹配),並且對應的同名字段最終在結果中只會保留一個。

表1 【inner/left/right】 join 表2 using(同名字段1,同名字段2...);


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