集合运算符
MySQL中的 集合运算符(Set operators)主要用于结合两个或多个SELECT语句的结果集,这些结果集应该具有相同的列数和数据类型,以便能够进行比较或合并。
需要注意的是,MySQL本身并没有直接称为“Set operators”的特定术语或一组专门的运算符,而是使用了一些类似功能的SQL语句或运算符来实现集合操作,如 UNION
、INTERSECT
、EXCEPT
以及 UNION ALL
等。
UNION 和 UNION ALL
UNION 操作符允许将两个或多个查询结果集合并为单个结果集
UNION DISTINCT
是 SQL 中用于合并多个查询结果集并去除重复行的操作符。它将多个 SELECT 语句的结果按照列的顺序合并成一个结果集,自动去重(即使未显示地指定DISTINCT
),并将结果进行排序(默认为升序)。
UNION 和 UNION ALL 的区别就在于是否会自动去重且是否自动排序
UNION ALL
是 SQL 中用于合并多个查询结果集的操作符。它将多个 SELECT 语句的结果按照列的顺序合并成一个结果集,并保留重复行,不会对结果集进行排序。执行速度要快于UNION。若要进行排序,可以使用ORDER BY
子句。
语法结构:
SELECT column1, column2, ... FROM table1
UNION [DISTINCT |