以前一直不知道Union和Union All到底有什么区别,今天来好好的研究一下,网上查到的结果是下面这个样子,可是还是不是很理解,下面将自己亲自验证:

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

Union All:对两个结果集进行并集操作,包括重复行,不进行排序;

下面进行简单的测试(因为是测试,所以sql代码写的很简单,没有什么很严格的规范,只是为了理解这两者之间的区别)

严格的标准写法应该先判断数据库是否存在,表是否存在等等约束

第一步,建库:

  1. Create database Test
  2. go
  3. use Test
  4. go

第二步,建表:

  1. Create table Table1
  2. (
  3. id int not null,
  4. name varchar(20) not null
  5. )
  6. Create table Table2
  7. (
  8. id int not null,
  9. name varchar(20) not null
  10. )

第三步,插入测试数据:

  1. Insert into Table1 values (1,'姚羽')
  2. Insert into Table1 values (2,'边兵兵')
  3. Insert into Table1 values (3,'袁磊')
  4. Insert into Table2 values (1,'姚羽')
  5. Insert into Table2 values (2,'柳春平')
  6. Insert into Table2 values (3,'张永超')
  7. Insert into Table2 values (4,'刘华健')

第四步,测试开始:

  1. select * from Table1
  2. select * from Table2

执行两个表的查询结果如下

可以很容易的看到,上面插入的测试数据当中,有一条是重复的

那么我们  先看执行union 看看

  1. select * from Table1
  2. union
  3. select * from Table2

再执行union  all 看看

  1. select * from Table1
  2. union all
  3. select * from Table2

相信到此时,应该明白了union  和 union all 的区别了,  我以前也一直没搞清楚,这次看视频,就终于搞清楚了

Union和Union All到底有什么区别的更多相关文章

  1. union和union all的区别

    UNION 写一篇联合查询(把前后两个表的查询结果集合在前表中)首先有个为什么需要 相同记录数?? 记错了.应该是union两张表的查询字段数目要一致,字段类型要相似相同的数据类型,至少是相似,可转化 ...

  2. Oracle之Union与Union all的区别

    如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称为联合)的作用是将多个结果合并在一起显示出来. union和unio ...

  3. union与union all的区别

    首先说下union与join的区别 1.union是以行增加的方式,进行连接:join是以列增加的方式进行连接: 2.union连接查询的两个表的字段必须要一一对应,数目相等:join则没有要求,但是 ...

  4. Ms SQLServer中的Union和Union All的使用方法和区别

    Ms SQLServer中的Union和Union All的使用方法和区别 SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 ...

  5. union与union all 的区别

    Union与Union All的区别 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称为联合)的作用是将多个结果合并 ...

  6. Union 与 Union all 区别

    原创,请园长不要删 Sql查询统计时,很多时候用到了union 和 union all,union与union all的区别就是联合查询的时候union会去重,union all不会去重.本人用uni ...

  7. SQL Server函数​---Union与Union All的区别

    SQL Server函数---Union与Union All的区别 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称 ...

  8. Oracle中Union与Union All的区别(适用多个数据库)

    Oracle中Union与Union All的区别(适用多个数据库) 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或 ...

  9. Union和Union All 的区别

    Union和Union All 的区别: Union 是对结果集进行并集操作,不包括重复行,同时进行默认规则的排序: Union All,对两个结果集进行并集操作,包括重复行,不进行排序: Inter ...

随机推荐

  1. cryptkeeper的使用

    转自:http://www.linuxidc.com/Linux/2011-06/37070.htm Cryptkeeper 是加密文件系统 EncFS 的前端工具,以 Gnome Applet 方式 ...

  2. SQL基础之基本操作

    1.UNION操作符 union操作符用来合并两个或多个select语句的结果,要注意union内部的每个select语句必须拥有相同数量的列,而且列也必须拥有相似的数据类型和相同的列顺序.下面是我的 ...

  3. (转)Java集合框架:HashMap

    来源:朱小厮 链接:http://blog.csdn.net/u013256816/article/details/50912762 Java集合框架概述 Java集合框架无论是在工作.学习.面试中都 ...

  4. CodeForces 548

    A. Mike and Fax time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  5. JS:事件对象1

    一,this关键字和上下文 var box = document.getElementById("box");. 普通的函数如果没有给他传递参数,函数本身是没有参数的. test( ...

  6. ZeroMQ接口函数之 :zmq_tcp – 使用TCP协议的ØMQ网络单播协议

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq-tcp zmq_tcp(7)          ØMQ Manual - ØMQ/4.1.0 Name zmq_t ...

  7. Hibernate的实体类为什么要实现Serializable序列化接口?

    Hibernate的实体类中为什么要继承Serializable?   hibernate有二级缓存,缓存会将对象写进硬盘,就必须序列化,以及兼容对象在网络中的传输 等等. java中常见的几个类(如 ...

  8. .net面试(汇总2)

    c#继承:  base 表示当前对象基类的实例(使用base关键字可以调用基类的成员)this表示当前类的实例 在静态方法中不可以使用base和this关键字 派生类会继承基类所有的成员但是构造函数和 ...

  9. Django框架初入

    一.Django 特性 数据库功能强大(利用python的类继承,几行代码就可以实现一个动态的数据库操作接口(API)) 强大的后台功能 优雅的网址(正则匹配网址,传递到对应函数) 模板与缓存系统 二 ...

  10. html中meta的设置

    meta设置 <meta name="viewport" content="width=device-width, initial-scale=1.0, user- ...