union distinct_当面试官问你UNION 和UNION ALL之间的区别时该怎么答?
概述
MySQL数据库支持两种集合操作:UNION DISTINCT和UNION ALL。 UNION DISTINCT组合两个输入,并应用DISTINCT过滤重复项,一般可以直接省略DISTINCT关键字,直接使用UNION。 在多个SELECT语句中,对应的列应该具有相同的字段属性,且第一个SELECT语句中被使用的字段名称也被用于结果的字段名称。
建表数据
为了更好的理解,造了下面mysql的两张表和一些数据。两张表中的数据其实是一样的(比较懒了,^_^),表及表字段略加改动。
create table name( id int(4) not null auto_increment comment 'key', name varchar(16) not null comment 'Name', agend int(1) comment 'agend', PRIMARY key(id))ENGINE=INNODB DEFAULT charset='utf8' comment 'name';insert into name(name,agend) values('ck1','1');insert into name(name,agend) values('ck2','0');insert into name(name,agend) values('ck3','1');insert into name(name,agend) values('ck4','0');insert into name(name,agend) values('ck1','1');create table name2( id2 int(4) not null auto_increment comment 'key', name2 varchar(16) not null comment 'Name', agend2 int(1) comment 'agend', PRIMARY key(id2))ENGINE=INNODB DEFAULT charset='utf8' comment 'name2';insert into name2(name2,agend2) values('ck1','1');insert into name2(name2,agend2) values('ck2','0');insert into name2(name2,agend2) values('ck3','1');insert into name2(name2,agend2) values('ck4','0');insert into name2(name2,agend2) values('ck1','1');
union distinct
其实union 相当于 union distinct,个人觉得写全比较好,不要偷懒。
当A查询中有数据a,B查询中有数据a,对两个查询使用union distinct方法,那么查询结果只有一条数据a记录。
举例如下:
(select * from name where name = 'ck1' AND agend = '1') UNION DISTINCT (SELECT * from name2 where agend2 = '1');union distinct
union all
当A查询中有数据a,B查询中有数据a,对两个查询使用union all方法,那么查询结果会出现两条数据a。
举例如下:
(SELECT * from name2 where agend2 = '1') UNION ALL (select * from name where name = 'ck1' AND agend = '1');
说明:
1、当A查询中有数据a,B查询中有数据a,不管对两个查询使用union all/distinct方法,查询结果的字段展示是根据union all/distinct前的查询结果字段展示的。例如前面union all,查询语句为:
(SELECT * from name2 where agend2 = '1') UNION ALL (select * from name where name = 'ck1' AND agend = '1');
那么展示的字段是 name2 表中的字段。
2、union all 在使用UNION DISTINCT的时候,由于向临时表中添加了唯一索引,插入的速度显然会因此而受到影响。如果确认进行UNION操作的两个集合中没有重复的选项,最有效的办法应该是使用UNION ALL。
union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序。
Union在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表Union。
Union All:对两个结果集进行并集操作,包括重复行,不进行排序。
后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~
union distinct_当面试官问你UNION 和UNION ALL之间的区别时该怎么答?相关推荐
- 面试官问你想找什么工作_找工作时如何面试面试官
面试官问你想找什么工作 在技术面试中要问的十二个问题 (Twelve questions to ask at tech interviews) I've just come off six wee ...
- 当面试官问我ArrayList和LinkedList哪个更占空间时,我这么答让他眼前一亮
前言 今天介绍一下Java的两个集合类,ArrayList和LinkedList,这两个集合的知识点几乎可以说面试必问的. 对于这两个集合类,相信大家都不陌生,ArrayList可以说是日常开发中用的 ...
- 面试官问你final、finally、finalize的区别
final final关键字可以用来修饰变量,被修饰的变量为常量,一旦被定义就不能再被修改. final double PI = 3.14; 定义全局常量一般用public static final修 ...
- 后处理程序文件大小的变量_【每日一题】(17题)面试官问:JS中事件流,事件处理程序,事件对象的理解?...
关注「松宝写代码」,精选好文,每日一题 作者:saucxs | songEagle 2020,实「鼠」不易 2021,「牛」转乾坤 风劲潮涌当扬帆,任重道远须奋蹄! 一.前言 2020.12.23 立 ...
- 手写Vuex核心原理,再也不怕面试官问我Vuex原理
手写Vuex核心原理 文章目录 手写Vuex核心原理 一.核心原理 二.基本准备工作 三.剖析Vuex本质 四.分析Vue.use 五.完善install方法 六.实现Vuex的state 七.实现g ...
- 当面试官问你“你期望的薪酬是多少”时,实际上是在问什么?
1 最近总有人问我这样的问题.虽然我曾经已在各个不同的场合回答了不下5遍. 在辞职带娃之前,我在一家大型的教育机构工作了7年. 七年中,各个工种,比如人事,教研,咨询,市场等等,都有过了解和涉猎.带过 ...
- 面试官问:如果MySQL引起CPU消耗过大,你会怎么优化
转载自 面试官问:如果MySQL引起CPU消耗过大,你会怎么优化 谁在消耗cpu? 用户+系统+IO等待+软硬中断+空闲 祸首是谁? 用户 用户空间CPU消耗,各种逻辑运算 正在进行大量tps 函数 ...
- 面试官问:select......for update会锁表还是锁行?
欢迎关注方志朋的博客,回复"666"获面试宝典 select查询语句是不会加锁的,但是select .......for update除了有查询的作用外,还会加锁呢,而且它是悲观锁 ...
- 面试官问:数据库 delete 表数据,磁盘空间还是被一直占用,为什么?
以下文章来源方志朋的博客,回复"666"获面试宝典 最近有个上位机获取下位机上报数据的项目,由于上报频率比较频繁且数据量大,导致数据增长过快,磁盘占用多. 为了节约成本,定期进行数 ...
最新文章
- statspack系列8
- 海峡两岸消防专家论坛台湾举行
- html中剪切图片所用插件,简单功能强大的jQuery图片剪裁插件Image Cropper
- java快递下单模块,Java开发快递物流项目(7)
- html5 将id的值用于top_web前端分享HTML5常见面试题集锦四
- 中兴助印尼Smartfren测试大规模MIMO技术
- 【保证能用】Ubuntu创建一个正常权限的用户
- php日历天气预报下载安装手机桌面_手机桌面时钟日历天气
- 独创圆柱形投影,索尼高透光HOE全息显示方案详解
- 南开大学计算机学院博士毕业要求,南京大学博士研究生申请学位科研成果基本要求...
- Dahua Lin recommended math book
- UVA 1646 Edge Case
- 终于我用JOL打破了你对java对象的所有想象
- 沙盘游戏作文培训感悟
- 国内MEMS企业、研究所以及科研院校
- 老牌系统:雨一直下win7主题
- moment 与 moment.unix 区别 moment用法
- 找不到wpcap.dll解决方法
- 程序员的财务自由之路(一)- 扬帆起航
- 云计算机服务包括哪些,云计算服务有哪些?
热门文章
- windows环境里React-Native运行失败,找不到Nullable的原因分析
- UI5 metadata usage in the runtime
- 关于SAP Cloud Platform ABAP环境费用的问题
- why the SalesOrder header note is read only
- SAP CRM WebClient UI BSP server event
- Java语言学习之泛型的用法
- 如何修改微软powerpoint模板文字
- 关于SAP CRM Organization Unit组织结构单元自动决定的一些调试
- 为什么我的C4C Service Request没办法Release到ERP?
- 动态分区分配的“首次适应算法_kafka集群关于资源分配的手册