union 是对数据进行并集操作,不包括重复行,同时进行默认排序union all 是对数据进行并集操作,包括重复行,不进行排序举例说明:
创建数据库表:
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;
复制此表:
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;
加入数据:
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
select * from t_demo union select * from t_demo_copy
查询结果:
我们从上面的查询数据可以发现:
union在进行表链接后会筛选掉重复的记录,对所产生的结果集进行排序运算,删除重复的记录再返回结果。
mysql中的union all
select * from t_demo union all select * from t_demo_copy
查询结果:
从上面数据我们可以看到:
union all只是简单的将两个结果合并后就返回。如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。
效率:
从效率上说,union all 要比union快很多,所以,如果可以确认合并的两个结果集中不包含重复数据且不需要排序时的话,那么就使用union all。
以上就是数据库技术:简单了解MySQL union all与union的区别的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。
需要了解更多数据库技术:简单了解MySQL union all与union的区别,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/dtteaching/819407.html