一、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

最新文章

  1. Java_Java中动态加载jar文件和class文件
  2. C++学习基础五之函数参数——形参
  3. Lambda表达式可以被转换为委托类型
  4. ajaxSubmit中option的参数
  5. How Tomcat Works(十二)
  6. Substring的简单使用
  7. BGP的状态机制
  8. crawler_x-requested-with 请求头
  9. C#基础、基础知识点(新人自我总结,开启java学习之路)
  10. mybatis逆向工程
  11. PE 001~010
  12. Linux - script练习
  13. HeadDoc自动注释语法
  14. Python内置函数(37)——len
  15. day72Django之ORM
  16. ----关于JS中迭代的三个“FOR”----
  17. SQL Fundamentals || Oracle SQL语言
  18. python 时间戳算法
  19. xe Style
  20. go语言基础之append函数的使用

热门文章

  1. JAVA中对事物的理解
  2. 第三节:numpy之数组数学运算
  3. PAT 1098. Insertion or Heap Sort
  4. APK动态加载框架 https://github.com/singwhatiwanna/dynamic-load-apk
  5. random随机库
  6. [cogs731] [网络流24题#6] 最长递增子序列 [网络流,最大流]
  7. debug jdk source can't watch variable what it is
  8. Findbug插件静态java代码扫描工具使用
  9. linux UID,GID,EUID,EGID,SUID,SGID
  10. UVA 10905