交叉連接、內連接和外連接的區別及使用方式

一、交叉連接、內連接、外連接的區別

  • 交叉連接又叫’笛卡爾積’,它是指不使用任何條件,直接將一個表的所有記錄和另一個表中的所有記錄一一匹配。
  • 內連接 則是隻有條件的交叉連接,根據某個條件篩選出符合條件的記錄,不符合條件的記錄不會出現在結果集中,即內連接只連接匹配的行 。
  • 外連接 其結果集中不僅包含符合連接條件的行,而且還會包括左表、右表或兩個表中的所有數據行,這三種情況依次稱之爲左外連接,右外連接,和全外連接

二、交叉連接

1. 並集 union

  • UNION 用於合併兩個或多個 SELECT 語句的結果集,並消去表中任何重複行
  • 同時,每條 SELECT 語句中的列的順序必須相同,而且也要具有相同的數據類型,列的數量也必須相同。如果不想去掉重複的行,可以使用union all
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

2. 交集 join

在這裏插入圖片描述

3. 差集 not

  • 假設有集合A和B,所有屬於A且不屬於B的元素的集合被稱爲A與B的差集。
    示例:對於集合A = {a, b, c, d}和集合B = {b, c, w},則A與B 的差集爲{a, d}
    在這裏插入圖片描述

4.笛卡爾積 CROSS JOIN

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

三、內連接

1. 等值連接inner join(不去重)

在這裏插入圖片描述

  • select語句先看的是from語句,因爲from後的表起別名的話,where子句可以用,而select語句執行又在where子句之後。
    在這裏插入圖片描述

2. 自然連接 natural join

在這裏插入圖片描述

3. 不等連接

  • select * from A INNER JOIN B on A.col>B.col;

四、外連接

1. 左外連接

在這裏插入圖片描述

2. 右外連接

在這裏插入圖片描述

3. 全外連接

  • mysql沒有專門提供一個全外連接的關鍵字,需要使用union關鍵字在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章