[基础教程]MySQL数据库的union和union all介绍

ronpris
ronpris
ronpris
253
文章
1
评论
2020年5月14日16:17:56 评论 175 1433字阅读4分46秒

这篇文章主要简单的了解MySQL union all与union的区别,文中通过示例代码介绍的还是非常详细的,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。

union 是对数据进行并集操作,不包括重复行,同时进行默认排序

union all 也是对数据进行并集操作,包括重复行,并且不进行排序

以下进行举例说明,创建两张表demo1和demo2,然后通过union和union all关联,查看获取的数据情况。
创建demo1表:

CREATE TABLE `demo1` (
 `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;

创建demo2表:

CREATE TABLE `demo2` (
 `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;

向demo1中插入数据:

INSERT INTO `demo1` VALUES ('1', '张三', '21', '69');
INSERT INTO `demo1` VALUES ('2', '李四', '22', '98');
INSERT INTO `demo1` VALUES ('3', '王五', '20', '54');
INSERT INTO `demo1` VALUES ('4', '赵甜', '22', '80');

如图所示:

向demo2中插入数据:

INSERT INTO `demo2` VALUES ('1', '张三', '21', '69');
INSERT INTO `demo2` VALUES ('2', '猪八戒', '22', '98');
INSERT INTO `demo2` VALUES ('3', '王五', '20', '54');
INSERT INTO `demo2` VALUES ('4', '赵甜', '22', '80');
INSERT INTO `demo2` VALUES ('5', '孙悟空', '22', '100');
INSERT INTO `demo2` VALUES ('6', '李四', '24', '99');

如图所示:

通过union关联的数据

SELECT * FROM demo1
UNION
SELECT * FROM demo2;

查询结果:

我们从上面的查询数据可以发现:
UNION在进行表链接后会筛选掉重复的记录,对所产生的结果集进行排序运算,删除重复的记录再返回结果。
通过union all关联的数据

SELECT * FROM demo1
UNION ALL
SELECT * FROM demo2;

查询结果:

​从上面数据我们可以看到:
UNION ALL只是简单的将两个结果合并后就返回。如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。

对于效率上说,UNION ALL 要比UNION快很多,因为不进行排序,同时不会检查重复数据,所以,如果可以确认合并的两个结果集中不包含重复数据且不需要排序时的话,那么就使用UNION ALL。
以上就是提灯小生介绍的全部内容,希望对大家的学习有所帮助,也希望大家多多支持提灯小生。

继续阅读
[基础教程]Mysql单表查询优先级实例讲解 原创推荐

[基础教程]Mysql单表查询优先级实例讲解

这篇文章主要介绍了MySQL单表查询操作,结合实例形式详细分析了mysql单表查询的语法、约束、分组、聚合、过滤、排序等相关原理、操作技巧与注意事项,需要的朋友可以参考下 本文实例讲述了MySQL单表...
[基础教程]Linux系统常用文件管理命令 原创推荐

[基础教程]Linux系统常用文件管理命令

这篇文章主要介绍了linux文件管理命令,结合实例形式分析Linux文件管理的显示、查看、统计等相关操作命令使用技巧,需要的朋友可以参考下 本文实例讲述了linux文件管理命令。分享给大家供大家参考,...