简单了解MySQL union all与union的区别

吾爱主题 阅读:293 2024-04-05 16:20:56 评论:0

union 是对数据进行并集操作,不包括重复行,同时进行默认排序union all 是对数据进行并集操作,包括重复行,不进行排序举例说明:

创建数据库表:

?
1 2 3 4 5 6 7 create table `t_demo` (   `id` int (32) not null ,   ` name ` varchar (255) default null ,   `age` int (2) default null ,   `num` int (3) default null ,   primary key (`id`) ) engine=innodb default charset=utf8;

复制此表:

?
1 2 3 4 5 6 7 create table `t_demo_copy` (   `id` int (32) not null ,   ` name ` varchar (255) default null ,   `age` int (2) default null ,   `num` int (3) default null ,   primary key (`id`) ) engine=innodb default charset=utf8;

加入数据:

?
1 2 3 4 5 6 7 8 9 10 insert into `t_demo` values ( '1' , '张三' , '21' , '69' ); insert into `t_demo` values ( '2' , '李四' , '22' , '98' ); insert into `t_demo` values ( '3' , '王五' , '20' , '54' ); insert into `t_demo` values ( '4' , '赵甜' , '22' , '80' ); insert into `t_demo_copy` values ( '1' , '张三' , '21' , '69' ); insert into `t_demo_copy` values ( '2' , '猪八戒' , '22' , '98' ); insert into `t_demo_copy` values ( '3' , '王五' , '20' , '54' ); insert into `t_demo_copy` values ( '4' , '赵甜' , '22' , '80' ); insert into `t_demo_copy` values ( '5' , '孙悟空' , '22' , '100' ); insert into `t_demo_copy` values ( '6' , '李四' , '24' , '99' );

mysql中的union

?
1 2 3 select * from t_demo union select * from t_demo_copy

查询结果:

我们从上面的查询数据可以发现:

union在进行表链接后会筛选掉重复的记录,对所产生的结果集进行排序运算,删除重复的记录再返回结果。

mysql中的union all

?
1 2 3 select * from t_demo union all select * from t_demo_copy

查询结果:

从上面数据我们可以看到:

union all只是简单的将两个结果合并后就返回。如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。

效率:

从效率上说,union all 要比union快很多,所以,如果可以确认合并的两个结果集中不包含重复数据且不需要排序时的话,那么就使用union all。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/zhaixingzhu/p/12569296.html

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容