SQL 集合操作2025年2月12日 | 阅读 6 分钟 当我们需要合并两个或多个 SELECT 语句的结果时,SQL 通过集合操作来满足这些要求。每个 SELECT 语句的结果可以被视为一个集合,并且可以将 SQL 集合操作应用于这些集合以获得最终结果。 集合操作的类型
![]() 使用集合运算符的语法是在上述语法中,集合运算符是您要执行的集合操作类型,即 Union、Union all、Intersect、Minus。SELECT 语句 1 包含第一个表的列,SELECT 语句 2 包含第二个表的列。 SQL 规定了编写 SQL 查询时应遵循的一些规则
让我们通过各种示例逐一详细解释每个集合运算符。 1. Union
![]() 上图显示了 UNION 集合运算符的图形表示。 语法 在上述语法中,column_name 是您要执行集合操作的列名,table1 是第一个表的名称,table2 是第二个表的名称,Union 是集合运算符。 示例 第一个表
第二个表
Union SQL 查询将是 结果表将如下所示
解释:在上述示例中,第一个 SELECT 语句将从表中检索所有值,第二个 SELECT 语句将从表中检索所有值。使用 UNION 集合运算符时,从上述两个查询中检索的所有行将被组合,并且所有重复项都将被删除。 2. Union AllUnion All 操作等同于 Union 操作。它返回集合而不删除重复项和排序数据。 ![]() 上图显示了 UNION ALL 集合运算符的图形表示。 语法 在上述语法中,column_name 是您要执行集合操作的列名,table1 是第一个表的名称,table2 是第二个表的名称,Union All 是集合运算符。 示例:使用上述第一个和第二个表。 Union All 查询将是 结果表将如下所示
解释:在上面的示例中,如果使用 UNION ALL 集合运算符,则不会从列表中筛选出重复行。输出按 SELECT 子句的第一列的升序存储,不包括 UNION ALL。此外,在检查重复项时不会忽略空值。 3. Intersect
![]() 上图显示了 INTERSECT 集合运算符的图形表示。 语法 在上述语法中,column_name 是您要执行集合操作的列名,table1 是第一个表的名称,table2 是第二个表的名称,Intersect 是集合运算符。 示例 使用上述第一个和第二个表。 Intersect 查询将是 结果表将如下所示
解释:在上述示例中,执行时会检索两个 SELECT 语句中的公共行。 4. Minus
![]() 上图显示了 MINUS 集合运算符的图形表示。 语法 在上述语法中,column_name 是您要执行集合操作的列名,table1 是第一个表的名称,table2 是第二个表的名称,Minus 是集合运算符。 示例 使用上述第一个和第二个表。 Minus 查询将是 结果表将如下所示
解释:在上述示例中,执行时将检索第一个 SELECT 语句检索的所有行,但第二个 SELECT 语句检索的与第一个 SELECT 不常见的那些行除外,即从第一个表中减去第二个表中的公共行,并显示从第一个 SELECT 语句检索的剩余行。 SQL 集合操作的多项选择题1. 关于 Union All 运算符,哪个说法是正确的?
答案:b 说明 它返回来自两个查询的组合行,而不进行排序或删除重复项。 2. 下图显示了哪个集合运算符? ![]()
答案:b 说明 上图演示了 Intersect 运算符的工作原理,因为它从两个表中返回公共数据。 3. 以下哪个不是 SQL 中的集合运算符?
答案:d 说明 LIKE 运算符不是 SQL 运算符,因为它用于 SQL 中的模式匹配。 4. SQL 集合运算符的目的是什么?
答案:c 说明 集合运算符用于在选定的查询中组合两个表的结果。 5. 使用 SQL SET 运算符,两个表中的列可以具有相同数量的列和相同的数据类型。
答案:b 说明 在 SQL SET 运算符中,两个表中的列具有相同的类型和相同的数量。 下一个主题DBMS SQL 游标 |
我们请求您订阅我们的新闻通讯以获取最新更新。