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

【SQL】联合语句的更多相关文章

  1. 画图解释SQL联合语句

    画图解释SQL联合语句 http://blog.jobbole.com/40443/ 我认为 Ligaya Turmelle 的关于SQL联合(join)语句的帖子对于新手开发者来说是份很好的材料.S ...

  2. 画图解释 SQL join 语句

    转:http://blog.jobbole.com/40443/ 本文由 伯乐在线 - 奇风余谷 翻译.未经许可,禁止转载!英文出处:Jeff Atwood.欢迎加入翻译组. 我认为 Ligaya T ...

  3. 转:画图解释 SQL join 语句

    画图解释 SQL join 语句 我认为 Ligaya Turmelle 的关于SQL联合(join)语句的帖子对于新手开发者来说是份很好的材料.SQL 联合语句好像是基于集合的,用韦恩图来解释咋一看 ...

  4. SQL join 语句 画图果然更容易理解

    我认为 Ligaya Turmelle 的关于SQL联合(join)语句的帖子对于新手开发者来说是份很好的材料.SQL 联合语句好像是基于集合的,用韦恩图来解释咋一看是很自然而然的.不过正如在她的帖子 ...

  5. SQL联合查询(内联、左联、右联、全联)的语法(转)

    最近在做一个比较复杂的业务,涉及的表较多,于是在网上找了一些sql联合查询的例子进行研究使用. 概述: 联合查询效率较高,举例子来说明联合查询:内联inner join .左联left outer j ...

  6. 15个初学者必看的基础SQL查询语句

    本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...

  7. SQL 联合索引 与 单一列的索引 比较

    背景: 公司业务迅速扩展,很多网站.接口都因为大流量的数据,发生服务器习惯性死机:一条sql查询语句只能适用于一定的网络环境,没有优化的查询当遇上大数据时就不适用了. 本文主旨: 讨论什么情况下能利用 ...

  8. (转)经典SQL查询语句大全

    (转)经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...

  9. 经典SQL查询语句大全

    一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...

  10. SQL联合索引 与 单一列的索引

    SQL联合索引 与 单一列的索引 标签: sqlwebobjectstatistics优化磁盘 2012-06-12 13:46 27992人阅读 评论(1) 收藏 举报  分类: 数据库(94)  ...

随机推荐

  1. CentOS6.8 安装python2.7,pip以及yum

    由于CentOS6.8里自带的yum所依赖的python是2.6.66版本,但是安装pip至少要求python是2.7版本,因而原有的2.6并不能卸载,又得安装新的2.7.之前安装的时候强制卸载了2. ...

  2. 【http反向代理】多个域名指向同一个ip的不同网站解决方法

    一个服务器需要挂载多个项目[重点是都能通过域名访问] 实现原理: 1.当前市面上看到的一些服务器,开放的端口一般都要求为 '80' 端口 所以80端口成了商用端口 2.域名的绑定是绑定一个一般是绑定你 ...

  3. 1.scrapy爬取的数据保存到es中

    先建立es的mapping,也就是建立在es中建立一个空的Index,代码如下:执行后就会在es建lagou 这个index.     from datetime import datetime fr ...

  4. 使用 Cordova 打包 app

    1.安装nodejs 2.安装 cordova npm install -g cordova 3.Cordova 打包成安卓APK需要用到ANT打包工具,首先配置好java环境: 下载安装Java J ...

  5. python爬虫15 | 害羞,用多线程秒爬那些万恶的妹纸们,纸巾呢?

    有时候 只是在人群中多看了一眼 就再也没办法忘掉那些容颜 小帅b在普通的一天 上着普通的网 不小心打开了一个不太普通的网站 https://www.mzitu.com/ 从此进入了不普通的一天 看着不 ...

  6. 强悍的 ubuntu —— 命令行访问网页

    所谓以命令行的方式访问网页,即是在终端下以文本的形式访问网站,这里推荐一个工具:w3m, $ sudo apt-get install w3m $ w3m www.baidu.com

  7. 【Codeforces 126B】Password

    [链接] 我是链接,点我呀:) [题意] 给你一个字符串s 让你从中选出来一个字符串t 这个字符串t是s的前缀和后缀 且在除了前缀和后缀之外的中间部位出现过. 且要求t的长度最长. 让你输出这个字符串 ...

  8. mysql :=和=的区别

    :=和=的区别 = 只有在set和update时才是和:=一样,赋值的作用,其它都是等于的作用.鉴于此,用变量实现行号时,必须用:= := 不只在set和update时时赋值的作用,在select也是 ...

  9. nyoj_37_回文字符串_201403121649

    回文字符串 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当 ...

  10. SharePoint 2013:解决添加域名后每次都需要登录的问题

    在SharePoint 2013中,当我们添加一个域名给SP后(添加域名的方法请参考此文:http://www.cnblogs.com/jianyus/archive/2013/08/10/32494 ...