Oracle学习之集合运算
一、集合运算操作符
UNION:(并集)返回两个集合去掉重复值的所有的记录
UNION ALL:(并集)返回两个集合去掉重复值的所有的记录
INTERSECT:(交集)返回两个集合的所有记录,重复的只取一次
MINUS:(差集)返回属于第一个集合,但不属于第二个集合的所有
记录
集合运算中各个集合必须有相同的列数,且类型一致,集合运算的结
果将采用第一个集合的表头作为最终的表头,order by必须放在每个
集合后
二、集合运算
使用UNION操作符查询scott表中10部门和20部门的员工信息
- SQL> select * from emp
- 2 where deptno=10
- 3 union
- 4 select * from emp
- 5 where deptno=20;
- EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
- ---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
- 7369 SMITH CLERK 7902 17-12月-80 880 20
- 7566 JONES MANAGER 7839 02-4月 -81 2975 20
- 7782 CLARK MANAGER 7839 09-6月 -81 2450 10
- 7788 SCOTT ANALYST 7566 19-4月 -87 3000 20
- 7839 KING PRESIDENT 17-11月-81 5000 10
- 7876 ADAMS CLERK 7788 23-5月 -87 1100 20
- 7902 FORD ANALYST 7566 03-12月-81 3000 20
- 7934 MILLER CLERK 7782 23-1月 -82 1300 10
- 已选择8行。
使用UNION操作符统计scott用户下emp表中得各个部门的总工资,
和各部门各职位的工资
- SQL> break on deptno skip 2;
- SQL> select deptno,job,sum(sal) from emp group by deptno,job
- 2 union
- 3 select deptno,to_char(null),sum(sal) from emp group by deptno
- 4 union
- 5 select to_number(null),to_char(null),sum(sal) from emp;
- DEPTNO JOB SUM(SAL)
- ---------- --------- ----------
- 10 CLERK 1300
- MANAGER 2450
- PRESIDENT 5000
- 8750
- 20 ANALYST 6000
- CLERK 1980
- MANAGER 2975
- 10955
- 30 CLERK 950
- MANAGER 2850
- SALESMAN 5600
- 9400
- 29105
- 已选择13行。
使用UNION ALL操作符查询scott用户下dept表中的信息
- SQL> select * from dept
- 2 union all
- 3 select * from dept;
- DEPTNO DNAME LOC
- ---------- -------------- -------------
- 10 ACCOUNTING NEW YORK
- 20 RESEARCH DALLAS
- 30 SALES CHICAGO
- 40 OPERATIONS BOSTON
- 10 ACCOUNTING NEW YORK
- 20 RESEARCH DALLAS
- 30 SALES CHICAGO
- 40 OPERATIONS BOSTON
- 已选择8行。
使用INTERSECT操作符查询scott用户下dept表和emp表中都存在的
部门号
- SQL> select deptno from emp
- 2 intersect
- 3 select deptno from dept;
- DEPTNO
- ----------
- 10
- 20
- 30
使用MINUS操作符查询scott用户下dept表中存在而emp表中
不存在的部门号
- SQL> select deptno from dept
- 2 minus
- 3 select deptno from emp;
- DEPTNO
- ----------
- 40
使用MINUS操作符查询scott用户下emp表中的员工工资属于
(1200-2000)这个档,而不属于(1400-3000)这个档的员工
- SQL> select empno,ename,job,sal
- 2 from emp
- 3 where sal between 1200 and 2000
- 4 minus
- 5 select empno,ename,job,sal
- 6 from emp
- 7 where sal between 1400 and 3000;
- EMPNO ENAME JOB SAL
- ---------- ---------- --------- ----------
- 7521 WARD SALESMAN 1250
- 7654 MARTIN SALESMAN 1250
- 7934 MILLER CLERK 1300
Oracle学习之集合运算的更多相关文章
- SQL基础学习_06_集合运算和联结
集合运算 1. 并集:UNION 例: SELECT shohin_id, shohin_mei FROM Shohin UNION SELECT shohin_id ...
- Oracle中的集合运算
前言:在实际项目中对多表进行集合运算使用非常广泛,以下是对集合操作的部分总结. 一,建表,插入测试数据 create table a( numbers integer ) create table b ...
- 【Java EE 学习 28 上】【oracle学习第二天】【子查询】【集合运算】【几种数据库对象】
一.子查询 1.为什么要使用子查询:问题不能一步求解或者一个查询不能通过一步查询得到. 2.分类:单行子查询和多行子查询. 3.子查询的本质:一个查询中包含了另外一个或者多个查询. 4.使用子查询的规 ...
- Oracle学习(七):集合运算
1.知识点:能够对比以下的录屏进行阅读 SQL> -- 查询10和20号部门的员工的3种方法 SQL> --1. select * from emp where deptno in (10 ...
- [学习笔记] Oracle集合运算、内连接、外连接、伪列
集合运算 INTERSECT(交集),返回两个查询共有的记录. UNION ALL(并集重复),返回各个查询的所有记录,包括重复记录. UNION(并集不重复),返回各个查询的所有记录,不包括重复记录 ...
- Oracle组函数、多表查询、集合运算、数据库对象(序列、视图、约束、索引、同义词)等
count组函数:(过滤掉空的字段) select count(address),count(*) from b_user max() avg() min(),sum() select sum(age ...
- Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...
- 5.创建表,使用alter进行表信息的增删改,Oracle回收站,集合运算
1 Oracle基于用户的管理方案 2 DDL语句可以管理数据库的对象有:视图 索引 序列 同义词 约束 3 创建一个表,有2个条件(1 有权限:2有表空间) Oracle给你提 ...
- Oracle(2)之多表查询&子查询&集合运算
多表查询 笛卡尔积 同时查询多张表时,每张表的每条数据都要和其它表的每条数据做组合.如下栗子,我们发现产生的总记录数是 56 条,还发现 emp 表是 14 条,dept 表是 4 条,56 条正是 ...
随机推荐
- DB天气app冲刺二阶段第十一天(完结)
今天最后一天冲刺了,明天就不再冲刺了..已经把所有的技术的问题还有设计的问题都弄好了吧应该说 至少目前来说是的.因为有的实现不了的或者需要耗费时间的已经果断舍弃了,然后需要完善的也都基本完善了. 现在 ...
- sql2008 计划自动创建数据库分区【转】
本文转自:http://jingyan.baidu.com/article/6b97984d9a26ec1ca3b0bf77.html sql2008 计划自动创建数据库分区 固定增量的数据,自动创建 ...
- MyEclipse 安装JRebel进行热部署
安装环境 版本:myeclipse2015stable2 说明:下面是我已经安装了界面 安装过程 进入市场 出现下面提示,不用管它,点Continue 用关键词搜索 配置 进入JRebel配置中心,配 ...
- ubuntu下opencv2.4.9安装测试
ubuntu下opencv2.4.9安装测试 whowhoha@outlook.com 一.依赖包安装 1. build-essential 软件包 sudo apt-get install bui ...
- 微信ios版6.2更新 聊天记录迁移更快捷朋友圈可翻译
微信iPhone版昨日发布更新,版本号为微信 6.2 for iOS,主要特性有聊天记录迁移.发送图片更快捷.支持朋友圈翻译.手机充值可充流量查余额.可以通过展示二维码来收钱,和ytkah一起来瞧瞧吧 ...
- Mongo常用操作
设置登陆验证 进入Mongo添加用户 db.addUser('root','123456') 编辑Mongo配置文件 vi /etc/mongod.conf 找到#auth = true ...
- HTTP/2 对 Web 性能的影响(下)
一.前言 我们在 HTTP/2 对 Web 性能的影响(上)已经和大家分享了一些关于 Http2 的二项制帧.多用复路以及 APM 工具等,本文作为姊妹篇,主要从 http2 对 Web 性能的影响. ...
- python库:fuzzywuzzy
fuzzywuzzy 用于字符串匹配率.令牌匹配等 复制代码代码如下: from fuzzywuzzy import fuzzfuzz.ratio("Hit me with your bes ...
- POJ 1862
#include <iostream> #include <algorithm> #include <iomanip> #include <cmath> ...
- WPF / Win Form:多线程去修改或访问UI线程数据的方法( winform 跨线程访问UI控件 )
WPF:谈谈各种多线程去修改或访问UI线程数据的方法http://www.cnblogs.com/mgen/archive/2012/03/10/2389509.html 子线程非法访问UI线程的数据 ...