数据库学习之五--Union, Union All和Intersect
一、定义
Union操作符用于合并两个或多个SELECT语句的结果集;
注:1. Union连接的Select语句之间必须拥有相同数量的列;
2. 列也必须拥有相似的数据类型;
3. 每条 SELECT 语句中的列的顺序必须相同;
INTERSECT选取出表中共有的部分,语法和Union一样;
二、详细例子说明
1. 创建Employee_USA和Employee_China表,并插入数据:
DROP TABLE IF EXISTS `Employee_USA`;
CREATE TABLE `Employee_USA` (
`ID_E` int(11) NOT NULL AUTO_INCREMENT,
`FistName` varchar(32) COLLATE utf8_bin DEFAULT NULL,
`LastName` varchar(32) COLLATE utf8_bin DEFAULT NULL,
`Age` int(11) DEFAULT NULL,
`City` varchar(32) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`ID_E`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; -- ----------------------------
-- Records of Employee_USA
-- ----------------------------
INSERT INTO `Employee_USA` VALUES ('', 'Adams', 'John', '', 'Phoenix');
INSERT INTO `Employee_USA` VALUES ('', 'San', 'Zhang', '', 'Shanghai');
INSERT INTO `Employee_USA` VALUES ('', 'Carter', 'Thomas', '', 'Denver');
DROP TABLE IF EXISTS `Employee_China`;
CREATE TABLE `Employee_China` (
`ID_E` int(11) NOT NULL AUTO_INCREMENT,
`LastName` varchar(32) COLLATE utf8_bin DEFAULT NULL,
`FistName` varchar(32) COLLATE utf8_bin DEFAULT NULL,
`Age` int(11) DEFAULT NULL,
`City` varchar(32) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`ID_E`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; -- ----------------------------
-- Records of Employee_China
-- ----------------------------
INSERT INTO `Employee_China` VALUES ('', 'Li', 'Yuan', '', 'Beijing');
INSERT INTO `Employee_China` VALUES ('', 'Zhang', 'San', '', 'Shanghai');
INSERT INTO `Employee_China` VALUES ('', 'Li', 'Si', '', 'Shenzhen');
以上表格显示为:
Employee_USA表:
  
Employee_China表:
  
2. Union语句,结果集中字段数据相同:
SELECT FistName, lastName, City FROM Employee_China
UNION
SELECT FistName, lastName, City FROM Employee_USA
执行结果:
  
3. Union语句,结果集中字段数据不同:
SELECT FistName, lastName, Age, City FROM Employee_China
UNION
SELECT FistName, lastName, Age, City FROM Employee_USA
执行结果:
  
4. Union All
SELECT FistName, lastName, City FROM Employee_China
UNION ALL
SELECT FistName, lastName, City FROM Employee_USA
执行结果:
  
三、Union, Union All结论:
从以上两个语句的执行情况可以看出:
1. Union会合并结果集相同的数据,而不管该数据在数据表中是否有不同的字段数据;
2. Union All显示所有的数据,不管结果集是否相同;
四、Intersect示例
SELECT FistName, lastName FROM Employee_China
INTERSECT
SELECT FistName, lastName FROM Employee_USA
1. 在Mysql运行结果如下:
    
五、Intersect结论
1. Mysql不支持Intersect;
2. 请自行测试Oracle,谢谢
数据库学习之五--Union, Union All和Intersect的更多相关文章
- SELECT--UNION,UNION ALL,MINUS, INTERSECT,EXISTS
		
SELECT--UNION,UNION ALL,MINUS, INTERSECT返回两个查询结果的集合操作,两个查询结果集必须字段相同.UNION和UNION ALL并集操作,UNION并集后去掉重复 ...
 - UNION、EXCEPT和INTERSECT操作查询结果
		
对查询结果进行合并.剔除.取重操作可以通过UNION.EXCEPT和INTERSECT实现 任意一种操作都要满足以下两个条件: 1.字段的数量和顺序一致 2.对应字段的数据类型相兼容 一.UNION ...
 - ORACLE中union/union all/Intersect/Minus用法
		
Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序: Union All,对两个结果集进行并集操作,包括重复行,不进行排序: Intersect,对两个结果集进行交集操作,不包 ...
 - 先排序然后union all失效,mysql数据库多个表union all查询并排序的结果为什么错误
		
mysql数据库多个表union all查询并排序的结果为什么错误? 群主,我想进行一个表的查询,先把表中某个字段的内容查出,然后其他的再排序,我用union all连接两个表的查询结果排序是错的 比 ...
 - 关于SQL SERVER数据库学习总结
		
对于SQL SERFVER数据库也学了有一阵子了,自己也对自己所学做了一些总结. 我们首先学习数据库设计的一些知识点和用SQL语句建库. 设计数据库步骤:需求分析阶段,概要设计阶段,详细设计阶段, 建 ...
 - ORACLE数据库学习之SQL性能优化详解
		
 Oracle sql 性能优化调整 ...
 - oracle数据库学习记录(持续更新中...)
		
--------------------------------------------day1------------------------------------------------- 1. ...
 - PLSQL_基础系列03_合并操作UNION / UNION ALL / MINUS / INTERSET(案例)
		
2014-11-30 Created By BaoXinjian
 - Oracle Union Union All 对查询结果集操作
		
在Oracle中提供了三种类型的集合操作: 并(UNION).交(INTERSECT).差(MINUS) Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序: Union Al ...
 
随机推荐
- Vector、ArrayList异同和HTTP请求异同的概括和区别
			
今天我所记录的是两个异同的概括: HTTP: 同步请求:提交请求->等待服务器处理->处理完毕返回给客户端 这个期间客户端浏览器只能处于等待状态,得到回应才可以执行下一步操作. 异步请求 ...
 - UnknownError: session deleted because of page crash from tab crashed
			
一.问题 在docker上跑Selenium+ChromeDriver+Chrome无头模式报错: UnknownError: unknown error: session deleted becau ...
 - Javascritp Array数组方法总结
			
合并数组 - concat() 用法一 (合并两个数组) var hege = ["Cecilie", "Lone"]; var stale = [" ...
 - C#  ObservableCollection两个字段排序的情况
			
相对于System.Linq的OrderBy及OrderByDescending方法,调用后产生IOrderedEnumberable对象,这个对象为排序后的返回值,但原对象未发生变化. 试想,有这种 ...
 - centos安装rocketMQ
			
1.下载安装包 http://rocketmq.apache.org/release_notes/ 这里选择 4.4.0 版本,点击进去 可以选择源码包或者二进制文件,这里选择二进制文件(ps:如果选 ...
 - beego 框架基本使用 && 知识点整理
			
beego 官网的教程已经整理的非常详细了,但作为一个刚接触的学习者,还是有必要做一下整理,这样在后面使用的时候遇到了不太熟悉的地方,还能反过头来看下自己整理的内容,快速的把知识再捞回来,下面是对官网 ...
 - zabbix4.2的yum+mariadb方式部署安装
			
本文依据官方文档操作(英文4.2):https://www.zabbix.com/documentation/4.2/manual/installation/install_from_packages ...
 - 正padding负margin实现多列等高布局(转)
			
转自: 巧妙运用CSS中的负值 (http://www.webhek.com/post/2345qwerqwer.html) 代码来自: https://codepen.io/Chokcoco/pen ...
 - S3C2440 gpio + main
			
相关文章:http://blog.csdn.net/zhangxuechao_/article/details/77990854 举例 start.S .globl _start _start: /* ...
 - iOS Touch Id 开发
			
Touch Id Touch Id是iPhone5S后加入的一项新的功能,也就是大家熟知的指纹识别技术.大家用得最多的可能是手机的解屏操作,不用在和以前一样输入手机的四位数密码进行验证.一方面不用担心 ...