MySQL UNION 操作符

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【1月更文挑战第6天】MySQL 使用讲解 第06期

昨天介绍了 MySQL 数据库使用 LIKE 子句来进行筛选查询,今天主要讲解下 MySQL UNION 操作符。

  • MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合,并去除重复的行。
  • UNION 操作符必须由两个或多个 SELECT 语句组成,每个 SELECT 语句的列数和对应位置的数据类型必须相同。

语法

首先,介绍一下语法。以下是 MySQL UNION 操作符语法格式:

SELECT column1, column2, ...
FROM table1
WHERE condition1
UNION
SELECT column1, column2, ...
FROM table2
WHERE condition2
[ORDER BY column1, column2, ...];

参数说明

  • column1, column2, ... 是你要选择的列的名称,如果使用 * 表示选择所有列。
  • table1, table2, ... 是你要从中查询数据的表的名称。
  • condition1, condition2, ... 是每个 SELECT 语句的过滤条件,是可选的。
  • ORDER BY 子句是一个可选的子句,用于指定合并后的结果集的排序顺序。

参数介绍完成,接下来通过一些实例来详细介绍下该如何使用。

实例01

-- 2024.01.21 查询登录日志表、登录失败日志表
SELECT create_code FROM nm_login_log UNION SELECT create_code FROM nm_login_fail_log ORDER BY create_code;

-- 解释:基本的 UNION 操作(查询登录日志表和登录失败日志表中“用户账号”的唯一值,并按“用户账号”升序排序)。

在这里插入图片描述

实例02

-- 2024.01.21 查询登录日志、登录失败日志表
SELECT create_code FROM nm_login_log WHERE create_date >= '2023-01-01' UNION SELECT create_code FROM nm_login_fail_log WHERE create_date >= '2023-01-01' ORDER BY create_code;

-- 解释:使用过滤条件的 UNION(查询登录时间在“2023-01-01”之后的全部用户,并按“用户账号”升序排序)。

在这里插入图片描述

实例03

-- 2024.01.21 查询登录日志、登录失败日志表
SELECT create_code,user_agent FROM nm_login_log UNION SELECT create_code,NULL FROM nm_login_fail_log ORDER BY create_code;

-- 解释:UNION 操作中的列数和数据类型必须相同(以上 SQL 语句中,nm_login_fail_log  表中的“create_code”列被映射到了 nm_login_log  表中的“user_agent”列,但是列数和数据类型必须相同)。

在这里插入图片描述

实例04

-- 2024.01.21 查询登录日志、登录失败日志表
SELECT create_code FROM nm_login_log UNION ALL SELECT create_code FROM nm_login_fail_log ORDER BY create_code;

-- 解释:使用 UNION ALL 不去除重复行(将登录日志表和登录失败日志表中所有“用户账号”合并在一起,不去除重复行)。

在这里插入图片描述

UNION 操作符在合并结果集时会去除重复行,而 UNION ALL 不会去除重复行,因此 UNION ALL 的性能可能更好,但如果你确实希望去除重复行,可以使用 UNION。

以上内容即为 MySQL 数据库 UNION 操作符的简单讲解,下期再见。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
数据采集 SQL 关系型数据库
在 MySQL 中使用 Union
【8月更文挑战第11天】
840 0
在 MySQL 中使用 Union
|
关系型数据库 MySQL 数据库
MySQL:union all与union区别详解
MySQL:union all与union区别详解
342 0
|
关系型数据库 MySQL
MySQL 的 union 和union all 的区别
【5月更文挑战第4天】MySQL 的 union 和union all 的区别
508 7
|
SQL 关系型数据库 MySQL
MySQL第三战:CRUD,函数1以及union&union all
MySQL第三战:CRUD,函数1以及union&union all
145 0
|
关系型数据库 MySQL
MySQL union和union all的用法详解和区别
MySQL union和union all的用法详解和区别
1502 0
|
SQL 关系型数据库 MySQL
MySQL SQL error: #1271 - Illegal mix of collations for operation ‘UNION‘
MySQL SQL error: #1271 - Illegal mix of collations for operation ‘UNION‘
1091 0
|
SQL 关系型数据库 MySQL
MySQL UNION 操作符
MySQL UNION 操作符
|
SQL 关系型数据库 MySQL
总结vue3 的一些知识点:MySQL UNION 操作符
总结vue3 的一些知识点:MySQL UNION 操作符
92 0
|
3月前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
665 1
|
4月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!

推荐镜像

更多