假设我们有一个表Student,包括以下字段与数据:
首先,我们来看一下UNION的例子:
如果换成Union All连接两个结果集,则结果如下:
可以看到,Union和Union All的区别之一在于对重复结果的处理。
接下来,我们交换一个两个SELECT语句的顺序,看看结果是怎样的。
可以看到,对于UNION来说,交换两个SELECT语句的顺序后结果仍然是一样的,这是因为UNION会自动排序。而UNION ALL在交换了SELECT语句的顺序后结果则不相同,因为UNION ALL不会对结果自动进行排序。
那么这个自动排序的规则是什么呢?我们交换一下SELECT后面选择字段的顺序(前面使用SELECT *相当于SELECT ID,NAME,SCORE),看看结果如何:
可是看到,此时是按照字段SCORE来对结果进行排序的(前面SELECT *的时候是按照ID进行排序的)。
那么有人会问,如果我想自行控制排序,能不能使用ORDER BY呢?当然可以。不过在写法上有需要注意的地方:
order by子句必须写在最后一个结果集里,并且其排序规则将改变操作后的排序结果。对于Union、Union All、Intersect、Minus都有效。
其他的集合操作符,如Intersect和Minus的操作和Union基本一致,这里一起总结一下:
Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union All,对两个结果集进行并集操作,包括重复行,不进行排序;
Intersect,对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
Minus,对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。
可以在最后一个结果集中指定Order by子句改变排序方式。
(源自:http://blog.csdn.net/wh62592855/article/details/4712555)
分享到:
相关推荐
Oracle数据库的SQL开发教程中,第08章主要讲解了集合运算,这是SQL查询中的一个重要概念,用于合并来自多个查询的结果集。集合运算包括联合(UNION)、完全联合(UNION ALL)、相交(INTERSECT)和相减(MINUS)四种...
这个"数据库概论习题集合库"的sjk.doc文件,很可能是包含了上述各个知识点的习题和解答,对于学习者来说,通过做题和解答,可以加深对数据库理论的理解,提高实际操作技能,为未来在IT领域的职业发展打下坚实基础。
集合运算是数据库查询中的一种重要操作,它允许将两个或多个SQL查询的结果集进行并集、交集和差集的运算。在数据库的查询语言中,如SQL(Structured Query Language),集合运算符用于对查询结果集进行组合或比较,...
【数据库关系运算】是数据库管理领域中的核心概念,主要涉及如何在关系模型中对数据进行操作。关系模型是由数学家E.F.科德提出的,它以二维表格的形式表示数据,并通过关键码进行数据导航,是目前最广泛使用的数据库...
在本主题中,“数据结构 集合运算”主要关注的是集合这一特殊的数据结构及其在C语言环境下的操作。集合是一种非常基础且重要的数据结构,它包含一组不重复的元素。在C语言中,集合可以由数组、链表或更高级的数据...
数据查询中的三个基本操作——选择、投影和连接,是关系数据库中最常用的操作之一,无法直接用传统集合运算表示,需要引入新的代数运算。 ##### 1. 关系属性的指定——投影运算 投影运算是用于选取某个关系上我们...
- **集合运算**:可以使用迭代器配合条件判断进行集合运算,或者使用STL中的`set_intersection`、`set_union`、`set_difference`和`set_symmetric_difference`算法函数。 5. **代码示例** - `set_intersection`:...
集合运算在数据库查询、图论算法、数据挖掘、编程竞赛等多个领域都有广泛应用。例如,在数据库中,用户可能希望找到满足特定条件的记录(交集),或查看所有记录(并集),或找出只存在于某个数据集中的记录(差集...
数据结构课程设计-文章编辑集合运算 本文档是关于数据结构课程设计的文章编辑集合运算的设计说明书。该设计的主要目的是实现文章编辑集合运算的功能,以满足计算机科学与技术系的需求。 一、需求分析 在计算机...
SQL 集合运算是指对数据库中的数据进行操作,以获得所需的结果。这种操作可以分为两大类:集合运算和 Join 运算。 集合运算是指对数据库中的表进行加减法操作,以获得所需的结果。常见的集合运算包括 UNION、...
适合人群:初学者至中级水平的SQL学习者,特别是对集合运算有兴趣或需要加深理解的数据库操作员及程序开发人员。 使用场景及目标:适用于日常的数据管理工作中遇到的类似问题解决方法的学习与练习,增强用户对于SQL...
是R(X,Y)关于X(集合运算:{X}=R-S)投影的子集 T中的任一元组,在R中的象集,包含关系S中的Y属性集的所有字段的域 意义:R÷S得到的结果是,一个关系某些元组,拥有另一个关系的某一字段的所有值。 还是难以理解,...
这些运算符可以对关系进行集合运算,例如将两个关系合并为一个关系,或者从一个关系中删除某些元组。 在关系代数运算中,专门的关系运算符是一种特殊的运算符,它包括选择、投影、连接和除运算等。这些运算符可以对...
数据库关系运算理论是数据库管理系统中的核心概念,主要应用于关系型数据库的设计和查询。关系代数是一种形式化的查询语言,用于描述对关系数据库的操作。在这个PPT学习教案中,主要介绍了关系代数的基础知识,包括...
了解这些基础的集合运算对于理解数据结构和算法至关重要,它们在程序设计、数据库查询优化、图论等领域都有广泛应用。通过实际的试验报告,学习者能够更好地掌握这些概念,并将其应用到实际问题中。
数据库关系运算理论是数据库系统的核心概念之一,主要探讨如何在关系模型中进行数据操作。关系模型是由IBM公司的埃德加·科德在1970年提出的,它以关系数据模型为基础,形成了如今广泛使用的RDBMS(关系数据库管理...
集合论不仅在数学中有广泛的应用,而且在计算机科学中的数据处理、数据库系统等领域也有着重要的地位。集合的基本运算包括交集、并集和补集,这些运算是理解和解决实际问题的基础。 #### 二、题目要求与分析 题目...
总的来说,关系代数是关系数据库理论的基石,它提供了一种形式化的语言来描述和执行对数据库的操作,包括集合运算、投影、选择和连接等,这些都是理解和操作关系数据库的关键工具。通过对这些概念的深入理解,我们...
5. **数据结构的效率分析**: 使用适当的数据结构对于执行这些集合运算至关重要。`std::set`由于其内在的排序性和高效的查找性能,是处理集合运算的理想选择。然而,如果内存是主要考虑因素,可以考虑使用`std::...