MySQL UNION 操作符

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,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 操作符的简单讲解,下期再见。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
SQL 关系型数据库 MySQL
总结vue3 的一些知识点:MySQL UNION 操作符
总结vue3 的一些知识点:MySQL UNION 操作符
|
8月前
|
关系型数据库 MySQL
Mysql union 联合查询
Mysql union 联合查询
41 0
|
5月前
|
SQL 关系型数据库 MySQL
MySQL UNION 操作符
MySQL UNION 操作符
|
7月前
|
SQL 关系型数据库 MySQL
总结vue3 的一些知识点:MySQL UNION 操作符
总结vue3 的一些知识点:MySQL UNION 操作符
31 0
|
9月前
|
关系型数据库 MySQL
Mysql join(连接查询) 与 union(联合查询) 的区别
Mysql join(连接查询) 与 union(联合查询) 的区别
100 0
|
11月前
|
关系型数据库 MySQL
mysql UNION规则
mysql UNION规则
82 1
|
关系型数据库 MySQL Unix
MySql基础-笔记5 -WHERE 、UPDATE、DELETE、LIKE、UNION使用
MySql基础-笔记5 -WHERE 、UPDATE、DELETE、LIKE、UNION使用
109 0
MySql基础-笔记5 -WHERE 、UPDATE、DELETE、LIKE、UNION使用
|
7天前
|
SQL 存储 关系型数据库
MySQL Cluster集群安装及使用
MySQL Cluster集群安装及使用
|
11天前
|
关系型数据库 MySQL 数据库
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
36 4
|
1天前
|
存储 关系型数据库 MySQL
linux安装MySQL8.0,密码修改权限配置等常规操作详解
linux安装MySQL8.0,密码修改权限配置等常规操作详解