Union和Union All的差别

Union和Union All的差别

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

如果我们有一个表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子句改变排序方式。

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118098.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月10日 下午11:00
下一篇 2021年12月11日 上午6:00


相关推荐

  • Navicat免费激活成功教程版安装说明

    Navicat免费激活成功教程版安装说明版权声明 本文为小异常原创文章 非商用自由转载 保持署名 注明出处 谢谢 本文网址 https blog csdn net sun article details Navicat 是一款快速 高效 可视化的数据库管理软件 但它并不免费 那么如果我们想用它做简单的测试来管理我们的数据库 如何可以免费安装呢 本篇主要讲解如何激活成功教程 Navic

    2026年3月20日
    1
  • 快速mysql导入sql文件_mysql肿么快速从sql文件导入数据库

    快速mysql导入sql文件_mysql肿么快速从sql文件导入数据库我的个人实践是:phpmyadmin导出utf-8的insert模式的abc.sqlftpabc.sql到服务器ssh到服务器mysql-uabc-puseKKK(数据库名,如果没有就createdatabaseKKK)setnames’utf8’sourceabc.sql注意:我看到setcharactersetutf8;的说法,那样不行,中…

    2022年10月2日
    5
  • 字符数组反转_字符数组的初始化

    字符数组反转_字符数组的初始化关于字符串的反转,倒是很简单,但是编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。你可以假设数组中的所有字符都是ASCII码表中的可打印字符。示例1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h…

    2022年5月3日
    51
  • MyEclipse 9.0正式版官网下载(附Win+Llinux激活方法、汉化包)

    MyEclipse 9.0正式版官网下载(附Win+Llinux激活方法、汉化包)MyEclipse9.0经过M1,M2,终于出了正式版(MyEclipseForSpring还是8.6.1)。该版本集成了Eclipse3.6.1,支持HTML5和JavaEE

    2022年7月2日
    35
  • 如何快速搭建图片服务器[通俗易懂]

    前言最近学习一个分布式集群的项目,正常一般的工程是把图片放在web项目的自身服务器的工程中,但在集群环境下,会出现找不到图片的情况。代码参考:https://github.com/zyjcxc/taotao.git比如:解决办法:linux做磁盘的映射,说能解决,但服务器多了也不好弄,所以可以再搭建一个图片服务器图片服务器两个服务:http:可以使用nginx…

    2022年4月10日
    61
  • 礼仪或许就是尊重的还有一个说法——leo鉴书61

    礼仪或许就是尊重的还有一个说法——leo鉴书61

    2021年11月24日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号