集合运算符之全集、交集、补集【weber出品必属精品】
集合的概念
与数学中的全集、交集、补集的概念是一样的
常用的集合运算符
集合运算符的作用:把两个查询构造为一个联合查询
1. 全集:求连个查询的全集
union all:将两个查询的所有数据全部列出,不进行排序,不去掉重复的部分
SQL> create table t1 as select * from emp where deptno in (,); Table created. SQL> create table t2 as select * from emp where deptno in (,); Table created.
SQL> select * from t1; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
SMITH CLERK -DEC-
JONES MANAGER -APR-
CLARK MANAGER -JUN-
SCOTT ANALYST -APR-
KING PRESIDENT -NOV-
ADAMS CLERK -MAY-
FORD ANALYST -DEC-
MILLER CLERK -JAN- rows selected. SQL> select * from t2; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
SMITH CLERK -DEC-
ALLEN SALESMAN -FEB-
WARD SALESMAN -FEB-
JONES MANAGER -APR-
MARTIN SALESMAN -SEP-
BLAKE MANAGER -MAY-
SCOTT ANALYST -APR-
TURNER SALESMAN -SEP-
ADAMS CLERK -MAY-
JAMES CLERK -DEC-
FORD ANALYST -DEC- rows selected. SQL> select * from t1
union all
select * from t2; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
SMITH CLERK -DEC-
JONES MANAGER -APR-
CLARK MANAGER -JUN-
SCOTT ANALYST -APR-
KING PRESIDENT -NOV-
ADAMS CLERK -MAY-
FORD ANALYST -DEC-
MILLER CLERK -JAN-
SMITH CLERK -DEC-
ALLEN SALESMAN -FEB-
WARD SALESMAN -FEB-
JONES MANAGER -APR-
MARTIN SALESMAN -SEP-
BLAKE MANAGER -MAY-
SCOTT ANALYST -APR-
TURNER SALESMAN -SEP-
ADAMS CLERK -MAY-
JAMES CLERK -DEC-
FORD ANALYST -DEC- rows selected.union:将两个查询的所有数据进行显示,但是重复的部分只显示一次,而且要按照第一个查询的第一列进行升序排序
SQL> select * from t1
union
select * from t2; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
SMITH CLERK -DEC-
ALLEN SALESMAN -FEB-
WARD SALESMAN -FEB-
JONES MANAGER -APR-
MARTIN SALESMAN -SEP-
BLAKE MANAGER -MAY-
CLARK MANAGER -JUN-
SCOTT ANALYST -APR-
KING PRESIDENT -NOV-
TURNER SALESMAN -SEP-
ADAMS CLERK -MAY-
JAMES CLERK -DEC-
FORD ANALYST -DEC-
MILLER CLERK -JAN- rows selected.union all与union的性能哪个更高?
union all性能更高:因为union all 不进行排序,也不去重
2. 交集:INTERSECT
SQL> select * from t1
intersect
select * from t2; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
SMITH CLERK -DEC-
JONES MANAGER -APR-
SCOTT ANALYST -APR-
ADAMS CLERK -MAY-
FORD ANALYST -DEC-3. 补集:MINUS
查询select * from e2的补集:SQL> select * from t1
minus
select * from t2; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
CLARK MANAGER -JUN-
KING PRESIDENT -NOV-
MILLER CLERK -JAN-SET运算符规则
1. 每个查询列表中的表达式的个数和数据类型必须相匹配
select后面的列的个数必须要一致:
select empno,ename,deptno,sal from e1
union all
select empno,ename,deptno from e2; select empno,ename,deptno,sal from e1
*
第 行出现错误:
ORA-: 查询块具有不正确的结果列数 select empno,ename,deptno,sal from e1
union all
select empno,ename,deptno,null from e2 null是可以的
数据类型必须一致: select empno,ename,deptno,sal from e1
union all
select empno,ename,deptno,'abc' from e2 第 行出现错误:
ORA-: 表达式必须具有与对应表达式相同的数据类型2. 可以使用括号来改变执行的顺序
select * from e1
intersect
select * from e2
union
select * from e2; ENAME EMPNO SAL DEPTNO
------ ----- ----- ------
ADAMS
ALLEN
BLAKE
FORD
JAMES
JONES
MARTIN
SCOTT
SMITH
TURNER
WARD 已选择11行。 select * from e1
intersect
(select * from e2
union
select * from e2); ENAME EMPNO SAL DEPTNO
------ ----- ----- ------
ADAMS
FORD
JONES
SCOTT
SMITH3. ORDER BY 子句的使用:
除了union all之外,其他的集合运算符都要按照第一个查询的第一列,进行升序
只可以在语句的最后出现:
select empno,ename,sal,deptno from e2
union
select empno,ename,sal,deptno from e2
order by ename desc; EMPNO ENAME SAL DEPTNO
----- ------ ----- ------
WARD
TURNER
SMITH
SCOTT
MARTIN
JONES
JAMES
FORD
BLAKE
ALLEN
ADAMS可以使用第一个查询语句的列名、别名、或位置(号)
select empno,ename name1,sal,deptno from e2
union
select empno,ename name2,sal,deptno from e2
order by name1 desc; EMPNO NAME1 SAL DEPTNO
----- ---------- ----- ------
WARD
TURNER
SMITH
SCOTT
MARTIN
JONES
JAMES
FORD
BLAKE
ALLEN
ADAMS 已选择11行。 select empno,ename name1,sal,deptno from e2
union
select empno,ename name2,sal,deptno from e2
order by name2 desc; order by name2 desc
*
第 行出现错误:
ORA-: "NAME2": 标识符无效 select empno,ename,sal,deptno from e2
union
select empno,to_char(sal) salary, null,deptno from e2
order by ; EMPNO ENAME SAL DEPTNO
----- ------ ----- ------ ADAMS
ALLEN
BLAKE
FORD
JAMES
JONES
MARTIN
SCOTT
SMITH
TURNER
WARD第一个查询语句的列名出现在结果中
select empno,to_char(sal) salary, null,deptno from e2
union
select empno,ename,sal,deptno from e2
order by
/ EMPNO SALARY NULL DEPTNO
----- ---------------------------------------- ---------- ------ ADAMS
ALLEN
BLAKE
FORD
JAMES
JONES
MARTIN
SCOTT
SMITH
TURNER
WARD查询语句的匹配:个数和数据类型的匹配
select empno,ename,sal,deptno from e1
union
select ,to_char(sal),null, from e2; EMPNO ENAME SAL DEPTNO
----- ------ ----- ------ SMITH
JONES
CLARK
SCOTT
KING
ADAMS
FORD
MILLER
集合运算符之全集、交集、补集【weber出品必属精品】的更多相关文章
- 全世界最详细的图形化VMware中linux环境下oracle安装(二)【weber出品必属精品】
<ORACLE 10.2.05版本的升级补丁安装> 首先我们解压 $ unzip p8202632_10205_LINUX.zip 解压后我们会发现多出了个文件夹,他是:Disk1,进入D ...
- 全世界最详细的图形化VMware中linux环境下oracle安装(一)【weber出品必属精品】
安装流程:前期准备工作--->安装ORACLE软件--->安装升级补丁--->安装odbc创建数据库--->安装监听器--->安装EM <前期准备工作> 安装 ...
- 控制用户的访问之权限、角色【weber出品必属精品】
权限的作用 限制用户对数据的访问 权限的分类 1. 系统权限:能够存取数据库的权限 2. 对象权限:操作数据库对象的内容 系统权限 1.1 如何创建用户: SQL> create user t ...
- 创建和管理表【weber出品必属精品】
创建表 必须有 : 1. CREATE TABLE 的权限 SQL> conn /as sysdba 已连接. SQL> create user test default tablespa ...
- 使用DML语句【weber出品必属精品】
DML语句包含以下语法: INSERT:往一个表中增加新行 DELETE:从一个表中删除掉现有的行 UPDATE:更改一个表中现有的行 INSERT语句语法:INSERT INTO TABLE(COL ...
- 静默安装ORACLE【weber出品必属精品】
安装配置系统环境安装linux ,所有服务都不选择,只是选择安装开发工具,不要安装防火墙(当然也可以在后面关闭) 打开终端,执行如下命令,检查安装包,没有的都要安装 make, glibc, liba ...
- ORACLE SQL单行函数(三)【weber出品必属精品】
16.L:代表本地货币符,这个和区域有关.这个时候我们想来显示一下人民币的符号:¥ $ vi .bash_profile ---写入如下内容: export NLS_LANG='SIMPLIFIED ...
- 创建存储过程和函数【weber出品必属精品】
一.什么是存储过程和函数 1. 是被命名的pl/sql块 2. 被称之为pl/sql子程序 3. 与匿名块类似,有块结构: 声明部分是可选的(没有declare关键字) 必须有执行部分 可选的异常处理 ...
- 初识数据字典【weber出品必属精品】
数据字典结构 有两部分组成: 1. 基表:以$结尾的系统表,在创建数据库的时候,oracle自动创建的表 2. 用户可以访问的视图 数据字典的种类 DICTIONARY:简称DICT,所有的数据字典, ...
随机推荐
- oracle获得每周,每月,每季度,每年的第一天
当前年月日 SELECT trunc(sysdate) , trunc(sysdate,'dd') FROM dual 当年第一天 SELECT trunc(sysdate,'yyyy') FRO ...
- Grand Central Dispatch(GCD)详解(转)
概述 GCD是苹果异步执行任务技术,将应用程序中的线程管理的代码在系统级中实现.开发者只需要定义想要执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务.由于 ...
- 2015版Force Touch Mac Book激活三个手指拖动窗口
新买的2015版的Mac Book Pro,一切都好,就是原来一直很的很习惯的三个手指拖动窗口的手势,突然找不到地方设置了,很是让我失望了一把,在想苹果怎么会把这么有用的手势去掉了呢.还好有万能的Go ...
- Swift中类的两段式构造(类的构造过程)
import Foundation /* 类的构造需要两个阶段: 第一阶段: 1.程序调用子类的某个构造器 2.为实例分配内存, 此时实例的内存还没有被初始化 3.指定构造器确保子类定义的所有实例存储 ...
- javascript 获取图片原始尺寸
javascript 获取图片原始尺寸 function getImgInfo(url){ var img = new Image(), loaded = false; var info = {}; ...
- LinkButton中添加删除确认框
LinkButton1.Attributes.Add("onclick", "javascript:return confirml('确认删除?');");
- 关于uC/OS的简单学习(转)
1.微内核 与Linux的首要区别是,它是一个微内核,内核所实现的功能非常简单,主要包括: 一些通用函数,如TaskCreate(),OSMutexPend(),OSQPost()等. 中断处理函数, ...
- 初探 iOS8 中的 Size Class
初探 iOS8 中的 Size Class 分类: Ios2014-09-16 13:11 4323人阅读 评论(1) 收藏 举报 目录(?)[+] 初探 iOS8 中的 Size Class ...
- HTTP服务负载均衡总结
从一开始就要思考扩展的架构,所谓可扩展性指的是通过扩展规模提高承载能力的本领,往往体现在增加物理服务器或者集群节点.负载均衡是常见的水平扩展的手段. 目标:(1)减少单点故障(2)提升整体吞吐量(3) ...
- RFID电子标签加工的倒装工艺
倒装对于半导体封装领域的人员而言,是再熟悉不过的了.一般我们看到的集成电路多数以塑封为主,半导体芯片和外界进行信息沟通的通道,靠的就是集成电路的管脚.如果把集成电路外面的封装去掉,会发现每个集成电路内 ...