union操作符

本文详细解释了MySQL中的UNION操作符,包括其用于连接多个SELECT语句、列数和数据类型的匹配要求,以及如何添加过滤条件和排序。示例展示了基本使用、去重与不去重的区别。
摘要由CSDN通过智能技术生成

描述

  1. MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合,并去除重复的行。
  2. 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 子句是一个可选的子句,用于指定合并后的结果集的排序顺序。

实例

  1. 基本的 UNION 操作:

SELECT city FROM customers
UNION
SELECT city FROM suppliers
ORDER BY city;

以上 SQL 语句将选择客户表和供应商表中所有城市的唯一值,并按城市名称升序排序。

  1. 使用过滤条件的 UNION:

SELECT product_name FROM products WHERE category = ‘Electronics’
UNION
SELECT product_name FROM products WHERE category = ‘Clothing’
ORDER BY product_name;

以上 SQL 语句将选择电子产品和服装类别的产品名称,并按产品名称升序排序。

  1. UNION 操作中的列数和数据类型必须相同:

SELECT first_name, last_name FROM employees
UNION
SELECT department_name, NULL FROM departments
ORDER BY first_name;

以上 SQL 语句中,departments 表中的 department_name 列被映射到了 employees 表中的 last_name 列,但是列数和数据类型必须相同。

  1. 使用 UNION ALL 不去除重复行:

SELECT city FROM customers
UNION ALL
SELECT city FROM suppliers
ORDER BY city;

具体例子

表名dept
在这里插入图片描述
表名emp
在这里插入图片描述

  1. select deptno from dept union select deptno from emp order by deptno;
    【 从dept表和emp表中分别查询deptno,去除重复,并且按deptno升序排序】
    查询结构如下:
    在这里插入图片描述
  2. select deptno from dept union all select deptno from emp order by deptno;
    【将dep表和emp表中的deptno合并在一起不去重复行,也就是选取所有deptno】
    查询结果如下:
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值