SQL 别名
SQL NO NULL 

SQL UNION

在 SQL 中,UNION 操作用于合并两个或多个 SELECT 语句的结果集,并且会自动去除重复的行。以下是 UNION 操作的基本语法和一些注意事项:

语法格式

SELECT column1, column2, ...
FROM table1
WHERE conditions
UNION
SELECT column1, column2, ...
FROM table2
WHERE conditions;


  • SELECT语句: 每个SELECT语句可以选择从一个或多个表中选择特定的列,并且可以带有WHERE条件来过滤结果。

  • UNION操作符: 将两个或多个SELECT语句的结果集合并在一起。

  • 去重: UNION操作会自动去除重复的行,如果想保留重复行,可以使用UNION ALL。


注意事项

  • 列数和数据类型: 每个SELECT语句中的列数和数据类型必须匹配。如果不匹配,通常会导致语法错误。

  • 列名: 结果集中的列名是由第一个SELECT语句中的列名决定的。

  • 顺序: UNION操作返回的结果集是无序的,如果需要有序的结果,可以在最外层的SELECT语句中使用ORDER BY子句。

  • 性能考虑: UNION操作会对结果集进行排序和去重,因此在处理大量数据时可能会影响性能。


使用示例

假设有两张表 students 和 teachers,分别包含学生和老师的信息。我们可以使用UNION操作来合并两张表的姓名信息:

SELECT student_name AS name, 'Student' AS role
FROM students
UNION
SELECT teacher_name AS name, 'Teacher' AS role
FROM teachers;


在这个例子中,我们使用了别名 name 和 role 来表示合并结果中的列。role 列指示每行数据是学生还是老师。


UNION ALL

如果需要包含重复的行,可以使用UNION ALL:

SELECT column1, column2, ...
FROM table1
UNION ALL
SELECT column1, column2, ...
FROM table2;


使用 UNION ALL 会将两个或多个 SELECT 语句的结果集合并在一起,不进行去重操作,因此效率可能会比 UNION 高,但返回的结果集中可能包含重复的行。


总结来说,UNION 操作是 SQL 中用于合并多个 SELECT 语句结果的强大工具,它能够简化查询复杂性并且有效地处理数据合并需求。