`
slikel
  • 浏览: 64055 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

数据库的集合运算

 
阅读更多

假设我们有一个表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章 集合运算(共20页).pdf

    数据库开发 Oracle数据库 SQL开发教程 第08章 集合运算(共20页).pdf 数据库开发 Oracle数据库 SQL开发教程 第09章 高级子查询(共23页).pdf 数据库开发 Oracle数据库 SQL开发教程 第10章 层次查询(共17页).pdf ...

    数据库概论习题集合库

    数据库概论习题集合库

    数据库——的集合运算

    集合运算:是用来把两个或多个查询的结果集做 并、交、差的集合运算,包含集合运算的查询称 为复合查询。

    数据结构课程设计,集合运算

    数据库课程设计 集合运算,实现简单的算法运算!

    数据库除运算

    是R(X,Y)关于X(集合运算:{X}=R-S)投影的子集 T中的任一元组,在R中的象集,包含关系S中的Y属性集的所有字段的域 意义:R÷S得到的结果是,一个关系某些元组,拥有另一个关系的某一字段的所有值。 还是难以理解,...

    ch04_ 集合运算1

    第四章:集合运算第四章:集合运算4.1 表的加减法表的加减法4.1.1 什么是集合运算什么是集合运算集合 在数学领域表示“各种各样的事物的总和”, 在数据库领域

    Oracle集合运算.pdf

    本资源涵盖知识(包括使用案例):Oracle集合运算,交集、并集、补集、差集. 集合运算就是将多个结果集组合成一个结果集。

    数据库之关系数据库的关系运算

    我们学习关系运算的机理,对我们理解数据库查询操作非常重要 所以我们进行关系操作时很大程度上需要明白关系操作以及关系之间的逻辑 在我们进行数据库查询操作时,如何规范的使用数据库语言,如何进行选择时能够消除...

    数据库课程设计_集合交、并、差、对称差运算.doc

    数据库课程设计_集合交、并、差、对称差运算

    MySQL数据库:项目理解数据库.pptx

    (一)传统的集合运算;(一)传统的集合运算;(一)传统的集合运算;(二)专门的关系运算;(二)专门的关系运算;(二)专门的关系运算;(二)专门的关系运算;(二)专门的关系运算;(二)专门的关系运算;(二)专门...

    数据库开发 Oracle数据库 SQL开发教程 全套PPT课件 共20个章节.rar

    数据库开发 Oracle数据库 SQL开发教程 第08章 集合运算(共20页).pdf 数据库开发 Oracle数据库 SQL开发教程 第09章 高级子查询(共23页).pdf 数据库开发 Oracle数据库 SQL开发教程 第0章 开篇概述(共14页).pdf ...

    数据库系统练习二答案

    4.在关系代数的传统集合运算中,假定有关系R和S,运算结果为W。如果W中的元组属于R,或者属于S,则W为▁▁▁▁▁运算的结果。如果W中的元组属于R而不属于S,则W为▁▁▁▁▁运算的结果。如果W中的元组既属于R又...

    0072数据库技术复习思考题.doc

    (0072)《数据库技术》复习思考题一、单项选择题 1.关系模型是一种( )。 A.概念模型 B.物理模型 C....对关系S和关系R进行集合运算,结果中既包含S中元组也包含R中元组,这种集合运算称为( )。A

    数据库开发 Oracle数据库 SQL开发教程 第12章 Oracle数据库网络连接(共39页).pdf

    数据库开发 Oracle数据库 SQL开发教程 第08章 集合运算(共20页).pdf 数据库开发 Oracle数据库 SQL开发教程 第09章 高级子查询(共23页).pdf 数据库开发 Oracle数据库 SQL开发教程 第10章 层次查询(共17页).pdf ...

    数据库开发 Oracle数据库 SQL开发教程 第01章 Oracle数据库基础(共60页).pdf

    数据库开发 Oracle数据库 SQL开发教程 第08章 集合运算(共20页).pdf 数据库开发 Oracle数据库 SQL开发教程 第09章 高级子查询(共23页).pdf 数据库开发 Oracle数据库 SQL开发教程 第10章 层次查询(共17页).pdf ...

    数据库 实验报告 完整版

    实验三 关系代数语言的集合运算功能模拟 实验四 关系代数语言的专门运算功能模拟 实验五 简单的关系演算(DML)功能模拟 实验六 关系数据库的查询优化 实验七 数据库保护(DCL)功能模拟 数据库系统原理课程设计文档...

    第二章数据库总结关系数据库.pdf

    笛卡尔积域上的一种集合运算,D1×D2={(d1,d2)|di∈Di,i=1,2,...)}所有域的所有取值一个组合,且不能重复元组笛卡尔积中每一个元素叫做一个n元组,简称元组分量笛卡尔积元素中的每一个值di叫做一个分量基数

    数据库关系代数整理

    n目k元组:n个属性,k个行 关系代数运算的分类 传统的集合运算 并、差、交、广义笛卡尔积 专门的关系运算 选择、投影、连接、除

    数据库系统概论【史嘉权】

    3.4.1 关系的集合运算 …… 第4章 数据库语言SQL 第5章 查询优化与并发控制 第6章 关系数据库设计理论 第7章 数据库设计 第8章 SQL系统环境 第9章 面向对象查询语言 第10章 数据库技术发展动态 附录A MS SQL Server...

    数据库开发 Oracle数据库 SQL开发教程 第15章 视图(共23页).pdf

    数据库开发 Oracle数据库 SQL开发教程 第08章 集合运算(共20页).pdf 数据库开发 Oracle数据库 SQL开发教程 第09章 高级子查询(共23页).pdf 数据库开发 Oracle数据库 SQL开发教程 第10章 层次查询(共17页).pdf ...

Global site tag (gtag.js) - Google Analytics