一、集合运算操作符

 UNION:(并集)返回两个集合去掉重复值的所有的记录

 UNION ALL:(并集)返回两个集合去掉重复值的所有的记录

INTERSECT:(交集)返回两个集合的所有记录,重复的只取一次

 MINUS:(差集)返回属于第一个集合,但不属于第二个集合的所有

                       记录

集合运算中各个集合必须有相同的列数,且类型一致,集合运算的结

       果采用第一个集合的表头作为最终的表头,order by必须放在每个

       集合后

二、集合运算

使用UNION操作符查询scott表中10部门和20部门的员工信息

  1. SQL> select * from emp
  2. 2  where deptno=10
  3. 3  union
  4. 4  select * from emp
  5. 5  where deptno=20;
  6. EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
  7. ---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
  8. 7369 SMITH      CLERK           7902 17-12月-80            880                    20
  9. 7566 JONES      MANAGER         7839 02-4月 -81           2975                    20
  10. 7782 CLARK      MANAGER         7839 09-6月 -81           2450                    10
  11. 7788 SCOTT      ANALYST         7566 19-4月 -87           3000                    20
  12. 7839 KING       PRESIDENT            17-11月-81           5000                    10
  13. 7876 ADAMS      CLERK           7788 23-5月 -87           1100                    20
  14. 7902 FORD       ANALYST         7566 03-12月-81           3000                    20
  15. 7934 MILLER     CLERK           7782 23-1月 -82           1300                    10
  16. 已选择8行。

使用UNION操作符统计scott用户下emp表中得各个部门的总工资,

       和各部门各职位的工资

  1. SQL> break on deptno skip 2;
  2. SQL> select deptno,job,sum(sal) from emp group by deptno,job
  3. 2  union
  4. 3  select deptno,to_char(null),sum(sal) from emp group by deptno
  5. 4  union
  6. 5  select to_number(null),to_char(null),sum(sal) from emp;
  7. DEPTNO JOB         SUM(SAL)
  8. ---------- --------- ----------
  9. 10 CLERK           1300
  10. MANAGER         2450
  11. PRESIDENT       5000
  12. 8750
  13. 20 ANALYST         6000
  14. CLERK           1980
  15. MANAGER         2975
  16. 10955
  17. 30 CLERK            950
  18. MANAGER         2850
  19. SALESMAN        5600
  20. 9400
  21. 29105
  22. 已选择13行。

使用UNION ALL操作符查询scott用户下dept表中的信息

  1. SQL> select * from dept
  2. 2  union all
  3. 3  select * from dept;
  4. DEPTNO DNAME          LOC
  5. ---------- -------------- -------------
  6. 10 ACCOUNTING     NEW YORK
  7. 20 RESEARCH       DALLAS
  8. 30 SALES          CHICAGO
  9. 40 OPERATIONS     BOSTON
  10. 10 ACCOUNTING     NEW YORK
  11. 20 RESEARCH       DALLAS
  12. 30 SALES          CHICAGO
  13. 40 OPERATIONS     BOSTON
  14. 已选择8行。

使用INTERSECT操作符查询scott用户下dept表和emp表中都存在的

        部门号

  1. SQL> select deptno from emp
  2. 2  intersect
  3. 3  select deptno from dept;
  4. DEPTNO
  5. ----------
  6. 10
  7. 20
  8. 30

使用MINUS操作符查询scott用户下dept表中存在而emp表中

不存在的部门号

  1. SQL> select deptno from dept
  2. 2  minus
  3. 3  select deptno from emp;
  4. DEPTNO
  5. ----------
  6. 40

使用MINUS操作符查询scott用户下emp表中的员工工资属于

          (1200-2000)这个档,而不属于(1400-3000)这个档的员工

  1. SQL> select empno,ename,job,sal
  2. 2  from emp
  3. 3  where sal between 1200 and 2000
  4. 4  minus
  5. 5  select empno,ename,job,sal
  6. 6  from emp
  7. 7  where sal between 1400 and 3000;
  8. EMPNO ENAME      JOB              SAL
  9. ---------- ---------- --------- ----------
  10. 7521 WARD       SALESMAN        1250
  11. 7654 MARTIN     SALESMAN        1250
  12. 7934 MILLER     CLERK           1300

Oracle学习之集合运算的更多相关文章

  1. SQL基础学习_06_集合运算和联结

    集合运算 1. 并集:UNION     例:     SELECT shohin_id, shohin_mei    FROM Shohin    UNION    SELECT shohin_id ...

  2. Oracle中的集合运算

    前言:在实际项目中对多表进行集合运算使用非常广泛,以下是对集合操作的部分总结. 一,建表,插入测试数据 create table a( numbers integer ) create table b ...

  3. 【Java EE 学习 28 上】【oracle学习第二天】【子查询】【集合运算】【几种数据库对象】

    一.子查询 1.为什么要使用子查询:问题不能一步求解或者一个查询不能通过一步查询得到. 2.分类:单行子查询和多行子查询. 3.子查询的本质:一个查询中包含了另外一个或者多个查询. 4.使用子查询的规 ...

  4. Oracle学习(七):集合运算

    1.知识点:能够对比以下的录屏进行阅读 SQL> -- 查询10和20号部门的员工的3种方法 SQL> --1. select * from emp where deptno in (10 ...

  5. [学习笔记] Oracle集合运算、内连接、外连接、伪列

    集合运算 INTERSECT(交集),返回两个查询共有的记录. UNION ALL(并集重复),返回各个查询的所有记录,包括重复记录. UNION(并集不重复),返回各个查询的所有记录,不包括重复记录 ...

  6. Oracle组函数、多表查询、集合运算、数据库对象(序列、视图、约束、索引、同义词)等

    count组函数:(过滤掉空的字段) select count(address),count(*) from b_user max() avg() min(),sum() select sum(age ...

  7. Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...

  8. 5.创建表,使用alter进行表信息的增删改,Oracle回收站,集合运算

     1  Oracle基于用户的管理方案 2 DDL语句可以管理数据库的对象有:视图   索引  序列  同义词   约束 3  创建一个表,有2个条件(1 有权限:2有表空间) Oracle给你提 ...

  9. Oracle(2)之多表查询&子查询&集合运算

    多表查询 笛卡尔积 同时查询多张表时,每张表的每条数据都要和其它表的每条数据做组合.如下栗子,我们发现产生的总记录数是 56 条,还发现 emp 表是 14 条,dept 表是 4 条,56 条正是 ...

随机推荐

  1. hbase meta表修复

    meta表修复一 查看hbasemeta情况hbase hbck1.重新修复hbase meta表(根据hdfs上的regioninfo文件,生成meta表)hbase hbck -fixMeta2. ...

  2. SQL SERVER 强制排序规则查询

    有时会需要在2个DB之间的数据做比较, 但因为一些原因, 数据库的默认排序规则是不一样的, 例如 SELECT A.Col1, B.Col1, A.* FROM DB1.dbo.A LEFT JOIN ...

  3. bnuoj 16493 Just Pour the Water(矩阵快速幂)

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=16493 [题解]:矩阵快速幂 [code]: #include <cstdlib> #i ...

  4. 邻结矩阵的建立和 BFS,DFS;;

    邻结矩阵比较简单,, 它的BFS,DFS, 两种遍历也比较简单,一个用队列, 一个用数组即可!!!但是邻接矩阵极其浪费空间,尤其是当它是一个稀疏矩阵的时候!!!-------------------- ...

  5. C# 延迟初始化

    一个对象的延迟初始化意味着该对象的创建将会延迟至第一次使用该对象时.(在本主题中,术语“延迟初始化”和“延迟实例化”是同义词.)延迟初始化主要用于提高性能,避免浪费计算,并减少程序内存要求. 以下是最 ...

  6. linux_fedora nexus_auto_start

      fedora20发布,不对rc.local支持,其实只是删除了rc.local文件,如果想在开机时能够运行自己写的脚本,只要新建rc.local文件就可以了,下面让我们来测试下吧: 环境:fedo ...

  7. 【BZOJ】【1877】【SDOI2009】晨跑

    网络流/费用流 费用流入门题……根本就是模板题好吗! 拆点搞定度数限制,也就是每个点最多经过一次……源点汇点除外. /***************************************** ...

  8. [BC]BestCoder Round#86小结

    1001 [题意] 给定一个长度为n(n<=100000)的正整数序列,给出m(m<=100000)个子集合和的记录,问哪些一定比正确的记录多了 [题解] 对正整数序列求和,记录比和大的一 ...

  9. 2013 Asia Chengdu Regional Contest

    hdu 4786 Fibonacci Tree http://acm.hdu.edu.cn/showproblem.php?pid=4786 copyright@ts 算法源于ts,用最小生成树可以求 ...

  10. [51 nod]1009 数字1的数量

    1009 数字1的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数.   例如: ...