一、集合运算操作符

 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. RCP,TCP,C/S,B/S

    RCP: RICH CLIENT PROGRAM   胖客户端 TCP: THIN CLIENT PROGRAM   瘦客户端 CS: CLIENT SERVER             客户端/服务 ...

  2. 【狼窝乀野狼】Serializer妙手回春

    在我们很多程序中,需要将数据保存到本地,以便于下次打开还能看到原始数据.例如我们Xmind思维导图,例如我们的Power Designer等等,都是有保存一个隶属于自己的工程文件,那么今天我要说的就是 ...

  3. as3.0服务端FMS软件常用的方法与属性参考示例

    转自:http://www.cuplayer.com/player/PlayerCode/RTMP/2012/0918429.html Application类的方法汇总方法 描述Applicatio ...

  4. CSS3技巧:利用css3径向渐变做一张优惠券(转)

    在很多购物网站上都能看到优惠券,代金券,什么什么的券,但基本都是图片直接放上去,那么你有没有想过css来做一个呢,反正我是这样想过.那么你怎么做呢,切图做背景平铺边缘,嗯,有这样想过,如今css3技术 ...

  5. 2014 Multi-University Training Contest 3

    官方解题报告http://blog.sina.com.cn/s/blog_a19ad7a10102uyiq.html Wow! Such Sequence! http://acm.hdu.edu.cn ...

  6. Spring @ Component 的作用

    1.@controller 控制器(注入服务) 2.@service 服务(注入dao) 3.@repository dao(实现dao访问) 4.@component (把普通pojo实例化到spr ...

  7. c++ 虚继承与继承的差异 (转)

    转自:CSDN dqjyong 原文链接:http://blog.csdn.net/dqjyong/article/details/8029527 前面一篇文章,说明了在C++ 虚继承对基类构造函数调 ...

  8. POJ2104 K-th Number Range Tree

    又是区间第k大,这次选择这道题是为以后写线段树套平衡树铺路的.Range Tree可以理解成线段树套vector吧,相当于每个结点多存了对应区间的一个排好序的序列.画一下就会知道空间的消耗是nlogn ...

  9. iframe标签用法详解(属性、透明、自适应高度)(总结)

    <iframe src="http://www.jb51.net" width="200" height="500"> 脚本之家 ...

  10. ***CI分页:为CodeIgniter写的分页类

    ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ...