数据库学习之五--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 ...
随机推荐
- Oracle部分
做了很多年Oracle,转行到MySQL了,算是借鉴 Oracle日常维护管理指标 一. 基本硬件环境 1. 主机硬件环境 品牌 型号 数量 物理CPU核数及逻辑CPU数 内存大小 本地硬盘大小 光驱 ...
- uwsgi flask gevent 测试代码覆盖率(coverage)
目录 可能出现的问题 解决 可能出现的问题 多进程启动 gevent启动 运行的服务可能不会停止 解决 我先参考了一下这一篇文章使用Coverage分析WSGI项目的代码覆盖率,他基本能够解决掉1.2 ...
- python检测当前端口是否使用
基于python检测端口是否在使用 - 缘起花渊 - 博客园https://www.cnblogs.com/yqmcu/p/9804002.html def net_is_used(port,ip=' ...
- DataSource配置
一.JDBC Jar依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifac ...
- 手工给程序插入 ShellCode
PE格式是 Windows下最常用的可执行文件格式,理解PE文件格式不仅可以了解操作系统的加载流程,还可以更好的理解操作系统对进程和内存相关的管理知识,而有些技术必须建立在了解PE文件格式的基础上,如 ...
- RabbitMQ的应用场景
进入正题. 一.异步处理 场景:发送手机验证码,邮件 传统古老处理方式如下图 这个流程,全部在主线程完成,注册->入库->发送邮件->发送短信,由于都在主线程,所以要等待每一步完成才 ...
- .net SHA-256 SHA-1
Framework 4.5 uses SHA-256 algorithm for the signature, and 4.0 uses SHA-1.
- Vivado生成及使用edf文件
前言 EDF文件可以直接导入Vivado,而无需Verilog源文件. 好处: (1) 避免沙雕队友修改源代码,则可以直接提交EDF网表文件. (2) 避免用户剽窃劳动成果. (3) ...
- 发现一个对列排版挺好用的命令:column
help [root@hdpool1 tmp]# column -h Usage: column [options] [file ...] Options: -c, --columns <wid ...
- DBShop前台RCE
前言 处理重装系统的Controller在判断是否有锁文件后用的是重定向而不是exit,这样后面的逻辑代码还是会执行,导致了数据库重装漏洞和RCE. 正文 InstallController.php中 ...