合并查询
一:链接数据库
????数据库实例 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
---------- ---------- ----------
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
---------- ---------- ----------
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