oracle集合运算

2015-01-22 21:09:54 · 作者: · 浏览: 4

集合运算就是将两个或者多个结果集组合成为一个结果集。集合运算包括:
INTERSECT(交集),返回两个查询共有的记录。
UNION ALL(并集),返回各个查询的所有记录,包括重复记录。
UNION(并集),返回各个查询的所有记录,不包括重复记录。
MINUS(补集),返回第一个查询检索出的记录减去第二个查询检索出的记录之后剩余的记录。

当使用集合操作的时候,要注意:查询所返回的列数以及列的类型必须匹配,列名可以不同。

代码演示:查询出dept表中哪个部门下没有员工。只需求出dept表中的部门号和emp表中的部门号的补集即可。

SQL> SELECT DEPTNO FROM DEPT MINUS SELECT DEPTNO FROM EMP; 


前面学习过可以通过insert into …select把一个结果集插入到另一张结构相同的表中,
因此可以使用union把若干条记录一次性插入到一张表中。

代码演示:用union插入多条数据

SQL> INSERT INTO DEPT
  2  SELECT 50,'公关部','台湾' FROM DUAL
  3  UNION
  4  SELECT 60,'研发部','西安' FROM DUAL
  5  UNION
  6  SELECT 70,'培训部','西安' FROM DUAL
  7  /