当前位置: 代码迷 >> SQL >> SQL基础-合拢查询(union,union all,intersect,minus)用法与介绍
  详细解决方案

SQL基础-合拢查询(union,union all,intersect,minus)用法与介绍

热度:111   发布时间:2016-05-05 13:27:48.0
SQL基础--合并查询(union,union all,intersect,minus)用法与介绍

合并查询

一:链接数据库

????数据库实例 orcl,??? 默认用户:scott???? 默认密码:tiger

????进入命令行:

运行-->cmd-->sqlplusw [email protected]

二:union运算符

???? 说明:用于获得两个结果集的合并,并自动删除重复行,而且会以第一列的结果进行排序

?????

select  empno,ename,mgr from emp where deptno=30unionselect  empno,ename,mgr from emp where job='MANAGER'/

??执行结果:

??

执行结果 写道
EMPNO ENAME MGR
---------- ---------- ----------
7499 ALLEN 7698
7521 WARD 7698
7566 JONES 7839
7654 MARTIN 7698
7698 BLAKE 7839
7782 CLARK 7839
7844 TURNER 7698
7900 JAMES 7698

?

三:union all运算符

???? 说明:用于获得两个结果的合并集,但不会自动去掉重复行,并且不会对结果进行排序

????

select  empno,ename,mgr from emp where deptno=30union allselect  empno,ename,mgr from emp where job='MANAGER'/

?

执行结果 写道

EMPNO ENAME MGR
---------- ---------- ----------
7499 ALLEN 7698
7521 WARD 7698
7654 MARTIN 7698
7698 BLAKE 7839
7844 TURNER 7698
7900 JAMES 7698
7566 JONES 7839
7698 BLAKE 7839
7782 CLARK 7839

9 rows selected.

四:intersect运算符

????? 说明:用于获得两个结果集合的交集,只会显示两个结果集合中同时存在的数据并且会以第一列的结果进行排序

select  empno,ename,mgr from emp where deptno=30intersectselect  empno,ename,mgr from emp where job='MANAGER'/

?

运行结果 写道
EMPNO ENAME MGR
---------- ---------- ----------
7698 BLAKE 7839

?五:minus运算符

???? 说明:用于获得两个结果集合的差集,只会显示在第一个结果集中存在但第二个结果集中不存在的数据,并且会以第一列结果进行排序

select  empno,ename,mgr from emp where deptno=30minusselect  empno,ename,mgr from emp where job='MANAGER'/

?

运行结果 写道

EMPNO ENAME MGR
---------- ---------- ----------
7499 ALLEN 7698
7521 WARD 7698
7654 MARTIN 7698
7844 TURNER 7698
7900 JAMES 7698
  相关解决方案