【SQL】联合语句
一、UNION操作符
UNION 操作符用于合并两个结果集,在合并的同时去掉重复行,并按合并后结果的第一列升序排列。合并后结果集的列名由第一个结果集的列名确定。
UINON连接的两个结果集必须具有相同的列数,并且各列具有相同的数据类型。注意这里说的是相同的数据类型,而不是相同的列名!
示例:两个表的列名不同,但具有相同的数据类型,同样可以进行UNION合并,并进行去重、排序处理。
(1)表T1、T2的表结构
SQL> desc t1;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(2)
NAME VARCHAR2(10)
AGE NUMBER(3)
SQL> desc t2;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(2)
ENAME VARCHAR2(10)
AGE NUMBER(3)
(2)表T1、T2中的数据
SQL> select * from t1;
ID NAME AGE
---------- ---------- ----------
1 wanglili 22
2 maling 22
3 mateng 22
4 yinguopeng 22
SQL> select * from t2;
ID ENAME AGE
---------- ---------- ----------
2 zhangfang 22
1 wanglili 22
3 mateng 22
4 zhanghui 22
(3)UNION合并后,去重排序,按第一个结果集的列名返回合并后的列名
SQL> select * from t1
2 union
3 select * from t2;
ID NAME AGE
---------- ---------- ----------
1 wanglili 22
2 maling 22
2 zhangfang 22
3 mateng 22
4 yinguopeng 22
4 zhanghui 22
6 rows selected.
二、UNION ALL 操作符
UNION ALL 同样可以合并两个结果集除了不去重、不排序以外和UNION完全相同。因为不去重、不排序的原因,UNION ALL比UNION效率高很多,所以,当对结果集要求不高的时候尽量使用UNION ALL。
SQL> select * from t1
2 union all
3 select * from t2;
ID NAME AGE
---------- ---------- ----------
1 wanglili 22
2 maling 22
3 mateng 22
4 yinguopeng 22
2 zhangfang 22
1 wanglili 22
3 mateng 22
4 zhanghui 22
8 rows selected.
三、INTERSECT操作符
INTERSECT用于返回两个结果集的交集,去掉重复值,并且会以第一列的升序排列。
示例:查询两个表中同时存在的人员信息。
SQL> select * from t1
2 intersect
3 select * from t2;
ID NAME AGE
---------- ---------- ----------
1 wanglili 22
3 mateng 22
四、MINUS操作符
MINUS用于返回在第一个结果集中存在,而在第二个结果集中不存在的数据,并且会以第一列升序排列。
示例:查询T1中存在,而T2中不存在的数据。
SQL> select * from t1
2 minus
3 select * from t2;
ID NAME AGE
---------- ---------- ----------
2 maling 22
4 yinguopeng 22
最新文章
- Java_Java中动态加载jar文件和class文件
- C++学习基础五之函数参数——形参
- Lambda表达式可以被转换为委托类型
- ajaxSubmit中option的参数
- How Tomcat Works(十二)
- Substring的简单使用
- BGP的状态机制
- crawler_x-requested-with 请求头
- C#基础、基础知识点(新人自我总结,开启java学习之路)
- mybatis逆向工程
- PE 001~010
- Linux - script练习
- HeadDoc自动注释语法
- Python内置函数(37)——len
- day72Django之ORM
- ----关于JS中迭代的三个“FOR”----
- SQL Fundamentals || Oracle SQL语言
- python 时间戳算法
- xe Style
- go语言基础之append函数的使用
热门文章
- JAVA中对事物的理解
- 第三节:numpy之数组数学运算
- PAT 1098. Insertion or Heap Sort
- APK动态加载框架 https://github.com/singwhatiwanna/dynamic-load-apk
- random随机库
- [cogs731] [网络流24题#6] 最长递增子序列 [网络流,最大流]
- debug jdk source can't watch variable what it is
- Findbug插件静态java代码扫描工具使用
- linux UID,GID,EUID,EGID,SUID,SGID
- UVA 10905