一、集合运算操作符

 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. SkyDrive Pro client now available as standalone download. Hurray!

    SkyDrive Pro client now available as standalone download. Hurray! by  Todd O. Klindt  on 5/21/2013 1 ...

  2. 历时一周,unity3d+xtion打造我的第一个休闲体感小游戏《空降奇兵》

    1.游戏介绍 本游戏属于休闲小游戏,主要操作如下: 菜单控制:举起左手或右手,点击左边或者右边的菜单:挥动左手或右手,选择关卡: 操作方式:玩家跳跃,游戏中的伞兵从飞机开始降落:玩家通过控制伞兵的左右 ...

  3. struts文件上传拦截器maximumSize设置文件大小不起作用

    <interceptor-ref name="fileUpload">                <param name="allowedTypes ...

  4. float2int

    flaot转int时,会直接舍弃小数为,但是当把f所在的地址的数据当成int解析时,就是另外的情况了. #include<iostream> using namespace std; in ...

  5. [设计模式] 10 外观模式 facade

    外观模式应该是用的很多的一种模式,特别是当一个系统很复杂时,系统提供给客户的是一个简单的对外接口,而把里面复杂的结构都封装了起来.客户只需使用这些简单接口就能使用这个系统,而不需要关注内部复杂的结构. ...

  6. NGUI List<EventDelegate> 小坑

    NGUI 3.0 之后 采用了 一种 全新的 事件系统 List<EventDelegate> ,使用起来并不麻烦. 但是最近做项目碰到一个小问题,特此分享一下. PS NGUI3.6.4 ...

  7. javascript 比较

    javascript中由于是弱类型,所以在比较的时候有较大的麻烦.这次专门做了总结: Comparison Operators Comparison operators are used in log ...

  8. Java 泛型(Generics)

    Generics, 类似C++中的模版. 允许在定义类和接口的时候使用类型参数(type parameters), 声明的类型参数在使用的时候用具体的类型来替换. 如 ArrayList<Str ...

  9. HDU 1102 Constructing Roads(最小生成树,基础题)

    注意标号要减一才为下标,还有已建设的路长可置为0 题目 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<str ...

  10. SaaS系列介绍之十五: SaaS知识重用

    1 建立并积累自己的开发体系 遵行业界的规定又有自己的特色是我们所追求的目标.成功的软件公司都有丰富而可复用的代码组件,几行代码在单个系统里可能无足轻重,但一旦可在大量的系统中可重复使用那就是价值不菲 ...