数据库学习之五--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 ...
随机推荐
- QT-入门:创建项目时遇到工程工具集(Kit)找不到问题
创建项目遇到了以下提示: Please add a kit in the options or via the maintenance tool of the SDK 解决方法: 在指定的工具链中设置 ...
- C#用户控件实战01_CSS布局
很多应用系统的主页布局,一般采用如下案例所示布局较多,如下图的CSS布局框架,上.中.下,接下来我们演示,在C#中实现如下的业务架构布局. 代码范例: 在<body></body&g ...
- 扩展支持全选的CheckBox列。
扩展支持全选的CheckBox列. https://www.codeproject.com/articles/42437/toggling-the-states-of-all-checkboxes-i ...
- vue单页面应用加入百度统计
版权声明:本文为CSDN博主「钟文辉」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/qq_39753974/a ...
- elementui限制开始日期和结束日期
项目需求:开始日期和结束日期 禁用当前日期之前的日期.同时结束日期 禁用开始日期之前的日期 <div class='startTime'> 开始时间:<el-date-picker ...
- 弹性布局flex 介绍
摘自:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模 ...
- uni-app 入门之 nvue (weex) 爬坑记
前言 uni-app 是 DCloud 出品的新一代跨端框架,可以说是目前跨端数最多的框架之一了,目前支持发布到:App(Android/iOS).H5.小程序(微信小程序/支付宝小程序/百度小程序/ ...
- php权限管理
首先权限管理肯定是需要登陆的,这里就简单的写一个登陆页面. 简单的登陆页面login.php <h1>登录页面</h1> <form action="login ...
- idea+maven使用
maven 1. 打开软件,点击configure-project default-settings.配置maven目录. 后续还需要配置一个地方是本地仓库的优先,在runner-VM Options ...
- springboot系列(十)springboot整合shiro实现登录认证
关于shiro的概念和知识本篇不做详细介绍,但是shiro的概念还是需要做做功课的要不无法理解它的运作原理就无法理解使用shiro: 本篇主要讲解如何使用shiro实现登录认证,下篇讲解使用shiro ...