内容导航
- 1、UNION(合并)
- 2、EXCEPT(除外)
- 3、INTERSECT(交集)
- 4、MINUS(差集)
- 5、独立案例
集合运算符将两个组件查询的结果组合成一个结果集。故包含集合运算符的查询称为复合查询。
表:集合运算符
运算符 | 含义 | 返回 |
---|---|---|
UNION | 并集 | 由任何查询选择的所有不重复行 |
UNION ALL | 合并所有 | 由任何查询选择的所有行,包括所有重复行 |
EXCEPT | 除外 | Oracle不支持 |
INTERSECT | 交集 | 返回多个查询结果中相同的部分。两个查询中都存在的所有不重复行 |
MINUS | 差集 | 返回两个查询结果的差集。所有不重复行都是由第一个查询选择的,而不是第二个查询 |
1、UNION(合并)
注意:
1、列名称对应;
2、列顺序对应;
3、列类型对应;
4、列数量对应;
/*
作者:AT阿宝哥
日期:2016年9月18日
愿景:参考官方资料,做最好的课程,成就更多职业人!
邮箱:12264104@qq.com
CSDN:https://blog.csdn.net/goldentec
简书:https://www.jianshu.com/u/8a6075d7a2e0
说明:注意:*/
-------------------------------------------------------------------------------
--Sample1:UNION 合并
SELECT * FROM emp WHERE sal < 2000
UNION
SELECT * FROM emp WHERE sal >= 2000;-------------------------------------------------------------------------------
--Sample2:
SELECT * FROM emp
UNION
SELECT * FROM dept;-------------------------------------------------------------------------------
--Sample3:
SELECT * FROM emp
UNION
SELECT empno,ename,sal FROM emp;-------------------------------------------------------------------------------
--Sample4:
SELECT empno,ename,sal FROM emp
UNION
SELECT empno,sal,ename FROM emp;
-------------------------------------------------------------------------------
2、EXCEPT(除外)
注意:
Oracle不支持EXCEPT。
/*
作者:AT阿宝哥
日期:2016年9月18日
愿景:参考官方资料,做最好的课程,成就更多职业人!
邮箱:12264104@qq.com
CSDN:https://blog.csdn.net/goldentec
简书:https://www.jianshu.com/u/8a6075d7a2e0
说明:注意:*/
-------------------------------------------------------------------------------
--EXCEPT 除外
SELECT * FROM tab1
EXCEPT
SELECT * FROM tab2;
-------------------------------------------------------------------------------
SELECT * FROM emp
EXCEPT
SELECT * FROM emp WHERE sal > 2500;-------------------------------------------------------------------------------
3、INTERSECT(交集)
/*
作者:AT阿宝哥
日期:2016年9月18日
愿景:参考官方资料,做最好的课程,成就更多职业人!
邮箱:12264104@qq.com
CSDN:https://blog.csdn.net/goldentec
简书:https://www.jianshu.com/u/8a6075d7a2e0
说明:注意:*/
---------------------------------------------------------------------------------INTERSECT 相交 SELECT * FROM emp WHERE sal > 2000
INTERSECT
SELECT * FROM emp WHERE sal > 3000;-------------------------------------------------------------------------------
4、MINUS(差集)
/*
作者:AT阿宝哥
日期:2016年9月18日
愿景:参考官方资料,做最好的课程,成就更多职业人!
邮箱:12264104@qq.com
CSDN:https://blog.csdn.net/goldentec
简书:https://www.jianshu.com/u/8a6075d7a2e0
说明:注意:*/
---------------------------------------------------------------------------------MINUS 补集SELECT * FROM emp WHERE sal > 2000
MINUS
SELECT * FROM emp WHERE sal > 3000;
-------------------------------------------------------------------------------
5、独立案例
/*
作者:AT阿宝哥
日期:2016年9月18日
愿景:参考官方资料,做最好的课程,成就更多职业人!
邮箱:12264104@qq.com
CSDN:https://blog.csdn.net/goldentec
简书:https://www.jianshu.com/u/8a6075d7a2e0
说明:注意:*/
-------------------------------------------------------------------------------
--测试用表
CREATE TABLE tab1 (A INT ,B CHAR(4)
);INSERT INTO tab1 VALUES(1,'ABC');
INSERT INTO tab1 VALUES(2,'DEF');
INSERT INTO tab1 VALUES(3,'GHI');
COMMIT;CREATE TABLE tab2 (A INT ,B CHAR(4)
);INSERT INTO tab2 VALUES(3,'GHI');
INSERT INTO tab2 VALUES(4,'JKL');
INSERT INTO tab2 VALUES(5,'MNO');
COMMIT;CREATE TABLE tab3 (A INT ,b CHAR(4),C CHAR(4)
);INSERT INTO tab3 VALUES(3,'GHI','GHI');
INSERT INTO tab3 VALUES(4,'JKL','GHI');
INSERT INTO tab3 VALUES(5,'MNO','GHI');
COMMIT;
---------------------------------------------------------------------------------UNION 合并
SELECT * FROM tab1
UNION
SELECT * FROM tab2;-------------------------------------------------------------------------------
--UNION ALL 合并所有
SELECT * FROM tab1
UNION ALL
SELECT * FROM tab2;-------------------------------------------------------------------------------
--EXCEPT 除外
SELECT * FROM tab1
EXCEPT
SELECT * FROM tab2;---------------------------------------------------------------------------------INTERSECT 交叉
SELECT * FROM tab1
INTERSECT
SELECT * FROM tab2;---------------------------------------------------------------------------------MINUS 差集
SELECT * FROM tab1
MINUS
SELECT * FROM tab2;-------------------------------------------------------------------------------
--删除表
DROP TABLE tab1;
DROP TABLE tab2;
DROP TABLE tab3;-------------------------------------------------------------------------------
好好学习,天天向上!继续下一章…??????
感谢您阅读,如果对作者其它文章也很感兴趣,请扫码关注!??????