SQL中UNION

SQL中UNION

SQL中UNION

1. 介绍

在SQL语言中,UNION是一种用于组合多个SELECT语句结果集的操作符。它可以将两个或多个SELECT语句的结果合并成一个结果集,且不包含重复的行。UNION操作符可以用于联结多个表、合并查询结果、进行数据整合等多种应用场景。

本文将详细介绍UNION操作符的使用方法、语法规则、注意事项以及一些实际应用示例。

2. UNION操作符的语法

UNION操作符的语法如下所示:

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

其中,SELECT column_name(s) FROM table1SELECT column_name(s) FROM table2 是两个不同的SELECT语句,它们的列数和类型必须一致。通过使用UNION操作符,两个SELECT语句的结果将被合并为一个结果集输出。

3. UNION操作符的特性

  • UNION操作符将两个或多个SELECT语句的结果集合并,生成一个结果集。该结果集包含所有SELECT语句的检索结果,且不包含重复的行。
  • UNION操作符要求被合并的每个SELECT语句具有相同的列数和列类型。如果两个SELECT语句的列数或类型不一致,将会产生错误。
  • UNION操作符默认以升序对结果进行排序。如果想要改变排序规则,可以使用ORDER BY子句进行排序。注意,ORDER BY子句只能放在最后。
  • UNION操作符只返回唯一的行,不会有重复。如果需要返回所有行(包括重复的行),可以使用UNION ALL操作符。

4. UNION ALL和UNION的区别

在使用UNION操作符时,可以选择使用UNION ALL或UNION关键字,它们之间有几点关键的区别:

  • UNION会自动去除重复的行,而UNION ALL则返回所有的行,包括重复的行。
  • UNION ALL的性能往往优于UNION,因为UNION需要对结果进行排序以去除重复的行,而UNION ALL不需要进行排序。
  • 如果不需要去重,只需要简单地将两个结果集合并为一个结果集,推荐使用UNION ALL。

5. 示例代码

5.1 创建测试表

首先,我们需要创建一些用于演示的测试表,假设我们有两个表:employeescustomers

-- 创建employees表
CREATE TABLE employees (
    id INT,
    name VARCHAR(50),
    salary INT
);

-- 插入数据
INSERT INTO employees (id, name, salary)
VALUES (1, 'Jack', 5000),
       (2, 'Lucy', 6000),
       (3, 'Tom', 4000);

-- 创建customers表
CREATE TABLE customers (
    id INT,
    name VARCHAR(50),
    city VARCHAR(50)
);

-- 插入数据
INSERT INTO customers (id, name, city)
VALUES (1, 'Alice', 'New York'),
       (2, 'Bob', 'San Francisco'),
       (3, 'Cindy', 'Los Angeles');

5.2 使用UNION操作符合并查询结果

假设我们需要将employees表和customers表中的姓名合并为一个结果集,并且按照姓名的升序排序。

-- 合并查询结果,并按姓名排序
SELECT name FROM employees
UNION
SELECT name FROM customers
ORDER BY name;

运行结果:

+-------+
| name  |
+-------+
| Alice |
| Bob   |
| Cindy |
| Jack  |
| Lucy  |
| Tom   |
+-------+

5.3 使用UNION ALL操作符合并查询结果

现在我们使用UNION ALL操作符合并查询结果,将employees表和customers表中的姓名合并为一个结果集,包含重复的行。

-- 合并查询结果,包含重复的行
SELECT name FROM employees
UNION ALL
SELECT name FROM customers
ORDER BY name;

运行结果:

+-------+
| name  |
+-------+
| Alice |
| Bob   |
| Cindy |
| Jack  |
| Lucy  |
| Tom   |
| Alice |
| Bob   |
| Cindy |
+-------+

5.4 UNION操作符的注意事项

在使用UNION操作符时,需要注意以下几点:

  • 被合并的SELECT语句必须具有相同的列数和列类型。
  • UNION操作符默认去除重复的行,如果需要包含重复的行,应该使用UNION ALL操作符。
  • UNION操作符会进行默认的升序排序,如果需要进行排序,可以在最后使用ORDER BY子句进行排序。

6. 结论

本文简单介绍了SQL中的UNION操作符,它可以用于合并不同SELECT语句的结果集,实现数据的整合和查询结果的合并。我们学习了UNION操作符的使用方法、语法规则、特性以及与UNION ALL操作符的区别。通过示例代码,我们展示了UNION操作符的具体应用场景和运行结果。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程