集合運算就是將兩個或者多個結果集組合成為一個結果集。集合運算包括:
INTERSECT(交集),返回兩個查詢共有的記錄。
UNION ALL(並集),返回各個查詢的所有記錄,包括重復記錄。
UNION(並集),返回各個查詢的所有記錄,不包括重復記錄。
MINUS(補集),返回第一個查詢檢索出的記錄減去第二個查詢檢索出的記錄之後剩余的記錄。
當使用集合操作的時候,要注意:查詢所返回的列數以及列的類型必須匹配,列名可以不同。
代碼演示:查詢出dept表中哪個部門下沒有員工。只需求出dept表中的部門號和emp表中的部門號的補集即可。
<span style="font-size:18px;">SQL> SELECT DEPTNO FROM DEPT MINUS SELECT DEPTNO FROM EMP; </span>
前面學習過可以通過insert into …select把一個結果集插入到另一張結構相同的表中,
因此可以使用union把若干條記錄一次性插入到一張表中。
代碼演示:用union插入多條數據
<span style="font-size:18px;">SQL> INSERT INTO DEPT 2 SELECT 50,'公關部','台灣' FROM DUAL 3 UNION 4 SELECT 60,'研發部','西安' FROM DUAL 5 UNION 6 SELECT 70,'培訓部','西安' FROM DUAL 7 /</span>