1.定义:在多个查询结果之间的查询操作
2.并集:将两个查询的查询结果合并在一起
A UNION B ==>ACB
A UNION ALL B ==> ACCB
(1)union:去重,结果以第一列升序排列
SELECT deptno,DNAME FROM DEPT
UNION
SELECT DEPTNO,ENAME FROM EMP;
(2)union all:不去重,不排序
SELECT DEPTNO,DNAME FROM DEPT
UNION ALL
SELECT DEPTNO,ENAME FROM EMP;
注意:(1)集合操作时,必须要保证数据类型和个数保持一致
SELECT DNAME,DEPTNO FROM DEPT
UNION
SELECT DEPTNO,ENAME,SAL FROM EMP;
在第一个查询中有2个字段,数据类型分别为varchar2和number类型,而在第二个查询中有三个字段,数据类型分别为number,varchar2和number类型,所以最后的结果只会是报错。
(2)最终的字段名以第一个查询查询结果为主。
3.交集:将两个查询的查询结果共有的数据取出,intersect
A INTERSECT B ==>C
SELECT JOB FROM EMP WHERE DEPTNO=10
INTERSECT
SELECT JOB FROM EMP WHERE DEPTNO=20;
4.差集:返回在第一个查询结果中出现而不在第二个查询查询结果中出现的数据
A MINUS B ==>A-C
SELECT JOB FROM EMP WHERE DEPTNO=10
MINUS
SELECT JOB FROM EMP WHERE DEPTNO=30