前言
集合常見的操作是 交并差的操作,那么SQL語句是如何實現(xiàn)的呢?
1.交集
1.1 關(guān)鍵字 :InterSect形成交集
InterSect可以對兩個或多個結(jié)果集進(jìn)行連接,形成“交集”。返回左邊結(jié)果集和右邊結(jié)果集中都有的記錄。
1.2限定條件
要是用Except來連接結(jié)果集,有4個限定條件。
(1)、子結(jié)果集要具有相同的結(jié)構(gòu)。
(2)、子結(jié)果集的列數(shù)必須相同。
(3)、子結(jié)果集對應(yīng)的數(shù)據(jù)類型必須可以兼容。
(4)、每個子結(jié)果集不能包含order by或compute子句。
1.3 語法形式
select_statement intersect select_statement
2.并集
2.1關(guān)鍵字:Union形成并集
Union可以對兩個或多個結(jié)果集進(jìn)行連接,形成“并集”。子結(jié)果集所有的記錄組合在一起形成新的結(jié)果集。
2.2 限定條件
要是用Union來連接結(jié)果集,有4個限定條件。
(1)、子結(jié)果集要具有相同的結(jié)構(gòu)。
(2)、子結(jié)果集的列數(shù)必須相同。
(3)、子結(jié)果集對應(yīng)的數(shù)據(jù)類型必須可以兼容。
(4)、每個子結(jié)果集不能包含order by和compute子句。
2.3語法形式
`select_statement union [all] select_statement`
all代表不能刪除重復(fù)行。
---
3.差集
3.1關(guān)鍵字Except形成差集
Except可以對兩個或多個結(jié)果集進(jìn)行連接,形成“差集”。 返回左邊結(jié)果集合中已經(jīng)有的記錄,而右邊結(jié)果集中沒有的記錄。
3.2 限定條件:
1、子結(jié)果集要具有相同的結(jié)構(gòu)。
2、子結(jié)果集的列數(shù)必須相同。
3、子結(jié)果集對應(yīng)的數(shù)據(jù)類型必須可以兼容。
4、每個子結(jié)果集不能包含order by 和 compute子句。
3.3 語法形式:
select_statement except select_statement
自動刪除重復(fù)行。