1. 介绍
MySQL是一个开源的关系型数据库管理系统,在数据分析中使用广泛。MySQL UNION 运算符是用于合并两个或多个 SELECT 语句结果集的运算符。使用 UNION 运算符可以使我们从多个数据集中检索出合并的数据,并且这些数据集可以来自多个表或视图。
2. UNION 运算符的语法
UNION 运算符的语法如下:
SELECT column1, column2, ..., columnN
FROM table_name1
UNION [ALL | DISTINCT]
SELECT column1, column2, ..., columnN
FROM table_name2
[WHERE condition];
其中,第一个 SELECT 语句和第二个 SELECT 语句必须具有相同的列数和相似的数据类型。
2.1 ALL 和 DISTINCT
使用 UNION ALL 会返回所有结果,包括重复的结果。使用 UNION DISTINCT 会从结果中排除所有重复的结果。
2.2 WHERE 子句
使用 WHERE 子句可以对结果进行过滤,只返回符合条件的记录。
3. 使用 UNION 运算符合并数据集
以下示例展示了如何使用 UNION 运算符将两个 SELECT 语句的结果集合并成一个结果集。
SELECT name, grade
FROM student_grade
WHERE grade > 80
UNION
SELECT name, grade
FROM student_score
WHERE grade > 80;
在这个例子中,我们从两个不同的表(student_grade 和 student_score)中选择所有分数大于80分的学生的名字和成绩,并且使用 UNION 运算符将它们合并成一个结果集。
3.1 使用 UNION ALL 运算符
以下示例展示了如何使用 UNION ALL 运算符将两个 SELECT 语句的结果集合并成一个结果集。
SELECT name, grade
FROM student_grade
WHERE grade > 80
UNION ALL
SELECT name, grade
FROM student_score
WHERE grade > 80;
在这个例子中,我们从两个不同的表(student_grade 和 student_score)中选择所有分数大于80分的学生的名字和成绩,并且使用 UNION ALL 运算符将它们合并成一个结果集。
3.2 使用 UNION 运算符进行排序
以下示例展示了如何对 UNION 运算符合并的结果集进行排序。
(SELECT name, grade
FROM student_grade
WHERE grade > 80)
UNION
(SELECT name, grade
FROM student_score
WHERE grade > 80)
ORDER BY grade DESC;
在这个例子中,我们使用 UNION 运算符合并由两个 SELECT 语句返回的结果集,并且使用 ORDER BY 子句按成绩降序排序。
4. 总结
UNION 运算符是 MySQL 中用于合并两个或多个 SELECT 语句结果集的运算符。使用 UNION 运算符可以使我们从多个数据集中检索出合并的数据,并且这些数据集可以来自多个表或视图。同时,UNION 运算符还支持 ALL 和 DISTINCT 选项,可以根据我们的需求对结果集进行过滤。在使用 UNION 运算符时,需要注意两个 SELECT 语句必须具有相同的列数和相似的数据类型。