Mysql基础指令:union
发布时间: 2024-04-30 15:55:14 阅读量: 84 订阅数: 91
![Mysql基础指令:union](https://img-blog.csdnimg.cn/c321ac30edf54d4cb2a861c0aed557d7.png)
# 1. MySQL UNION 基础**
UNION 运算符用于合并两个或多个 SELECT 语句的结果集。它将这些结果集连接在一起,形成一个新的结果集。UNION 运算符的语法如下:
```sql
SELECT ...
FROM ...
UNION
SELECT ...
FROM ...
```
UNION 运算符有以下特点:
* 合并的结果集中包含所有唯一行。
* 合并的结果集的列数和数据类型必须相同。
* 合并的结果集的顺序与 SELECT 语句的顺序相同。
# 2. UNION 的应用场景
### 2.1 UNION 查询相同结构表
UNION 操作符最基本的应用场景是查询相同结构的表。假设我们有两个表 `table1` 和 `table2`,结构完全相同,包含相同的列和数据类型。我们可以使用 UNION 操作符将这两个表中的数据合并成一个结果集。
```sql
SELECT * FROM table1
UNION
SELECT * FROM table2;
```
执行此查询后,结果集将包含来自 `table1` 和 `table2` 的所有行,按顺序排列。需要注意的是,UNION 操作符会自动去除重复的行,因此结果集中不会出现重复数据。
### 2.2 UNION 查询不同结构表
UNION 操作符还可以用于查询不同结构的表。在这种情况下,UNION 操作符会将两个表中的列按位置对齐,并只返回匹配的列。假设我们有两个表 `table3` 和 `table4`,结构不同:
```sql
CREATE TABLE table3 (
id INT NOT NULL,
name VARCHAR(255) NOT NULL,
age INT NOT NULL
);
CREATE TABLE table4 (
id INT NOT NULL,
address VARCHAR(255) NOT NULL,
phone VARCHAR(255) NOT NULL
);
```
我们可以使用 UNION 操作符将这两个表中的数据合并成一个结果集,只返回 `id` 列:
```sql
SELECT id FROM table3
UNION
SELECT id FROM table4;
```
执行此查询后,结果集将包含来自 `table3` 和 `table4` 中的 `id` 列,按顺序排列。
### 2.3 UNION 查询子查询
UNION 操作符还可以用于查询子查询。子查询是嵌套在主查询中的查询,可以返回一个临时结果集。假设我们有一个表 `table
0
0