数据库学习之五--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 ...
随机推荐
- 机器学习之Adaboost与XGBoost笔记
提升的概念 提升是一个机器学习技术,可以用于回归和分类问题,它每一步产生一个弱预测模型(如决策树),并加权累加到总模型中:如果每一步的弱预测模型生成都是依据损失函数的梯度方向,则称之为梯度提升(Gra ...
- k8s 启动pod的问题
版本: k8s 1.5 docker 1.3 CentOS 7.6 使用命令 kubectl get pods输出no resources.解决方法是修改 apiserver 的配置文件 vim /e ...
- jquery.marquee
http://aamirafridi.com/jquery/jquery-marquee-plugin#examples <script src="/plugins/marquee/j ...
- vsCode 代码不高亮显示的问题——安装Vetur插件
vsCode 代码不高亮显示: 解决办法:安装Vetur插件 点击左侧菜单的扩展-->搜索Vetur-->点击安装-->安装完成重启vsCode
- 在论坛中出现的比较难的sql问题:17(字符分拆2)
原文:在论坛中出现的比较难的sql问题:17(字符分拆2) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有必要记录下来 ...
- springboot之手动控制事务
一.事务的重要性,相信在实际开发过程中,都有很深的了解了.但是存在一个问题我们经常在开发的时候一般情况下都是用的注解的方式来进行事务的控制,说白了基于spring的7种事务控制方式来进行事务的之间的协 ...
- Redis—简介
1.Redis是什么? 是一个速度非常快的非关系型数据库,即NoSql数据库(non-relational database) 可以将存储在内存的Key-Value数据持久化到硬盘,可以使用复制特性来 ...
- Hadoop Local(本地)模式搭建
1. 下载压缩包 2. 配置环境变量 3. 配置Hadoop的JAVA_HOME路径 4. WordCount 1. 下载压缩包 下载Hadoop binary二进制压缩包 https://hadoo ...
- 采用localStorage做定时缓存
背景 页面采用ajax获取数据时,每访问一次就会发送一次请求向服务端获取数据,可是呢. 有些数据更新的又不频繁,所以我就想着使用localStorage进行本地存储,然后在固定间隔时在去更新数据.(下 ...
- Mac 下 visual studio code 编辑器 设置为中文
1,mac系统VScode设置中文 macOS 快捷键:command + shift + p 输入搜索 configure language 1.Ctrl+Shift+P 打开命令 2.搜索 ...