SQL集合操作用於組合兩個或多個SQL SELECT語句。
集合操作的類型
- 聯合 - Union
- 聯合所有 - UnionAll
- 交集 - Intersect
- 差集 - Minus
聯合 - Union
SQL Union
操作用於組合兩個或多個SQL SELECT
查詢的結果。
在union
操作中,在應用UNION
操作的兩個表中,所有數據類型和列的數量必須相同。union
操作從結果集中刪除重複的行。
語法
SELECT column_name FROM table1
UNION
SELECT column_name FROM table2;
假設有兩個表,第一個表:First 的結構和數據如下 -
ID | NAME |
---|---|
1 | Jack |
2 | Harry |
3 | Jackson |
第二個表:Second 的結構和數據如下 -
ID | NAME |
---|---|
3 | Jackson |
4 | Stephan |
5 | David |
Union的SQL查詢如下:
SELECT * FROM First
UNION
SELECT * FROM Second;
執行查詢後如下所示:
ID | NAME |
---|---|
1 | Jack |
2 | Harry |
3 | Jackson |
4 | Stephan |
5 | David |
2. 全聯合 - Union All
Union All
操作等於Union
操作。它返回集合但不刪除重複和排序數據。
語法:
SELECT column_name FROM table1
UNION ALL
SELECT column_name FROM table2;
示例: 使用上面的第一個和第二個表。
Union All
查詢語句如下:
SELECT * FROM First
UNION ALL
SELECT * FROM Second;
執行查詢後結果如下所示:
ID | NAME |
---|---|
1 | Jack |
2 | Harry |
3 | Jackson |
3 | Jackson |
4 | Stephan |
5 | David |
3. 相交
它用於組合兩個SELECT語句。 相交(Intersect)操作從兩個SELECT
語句返回公共行。
在“相交”操作中,數據類型和列的數量必須相同。
它沒有重複項,默認情況下按昇冪排列數據。
語法
SELECT column_name FROM table1
INTERSECT
SELECT column_name FROM table2;
示例:
使用上面的First
表和Second
表。
相交查詢語句是:
SELECT * FROM First
INTERSECT
SELECT * FROM Second;
執行上面查詢語句,得到以下結果:
ID NAME
----------------------------------
3 Jackson
4. 差集
它結合了兩個SELECT語句的結果。 差集運算符用於顯示第一個查詢中存在但第二個查詢中不存在的行。
它沒有重複項,默認情況下按昇冪排列數據。
語法:
SELECT column_name FROM table1
MINUS
SELECT column_name FROM table2;
示例
使用上面的First
表和Second
表。
差積查詢語句是:
SELECT * FROM First
MINUS
SELECT * FROM Second;
執行上面查詢語句,得到以下結果:
ID NAME
------------------------------------
1 Jack
2 Harry
上一篇:
SQL連接查詢
下一篇:無