Union由于要进行反复值扫描,所以效率低。假设合并没有刻意要删除反复行,那么就使用Union All

 两个要联合的SQL语句 字段个数必须一样。并且字段类型要“相容”(一致)。

假设我们须要将两个select语句的结果作为一个总体显示出来,我们就须要用到union或者union allkeyword。union(或称为联合)的作用是将多个结果合并在一起显示出来。




union和union all的差别是,union会自己主动压缩多个结果集合中的反复结果,而union all则将所有的结果所有显示出来,无论是不是反复。





Union:对两个结果集进行并集操作,不包含反复行,同一时候进行默认规则的排序。



Union All:对两个结果集进行并集操作,包含反复行,不进行排序。



Intersect:对两个结果集进行交集操作,不包含反复行,同一时候进行默认规则的排序。



Minus:对两个结果集进行差操作,不包含反复行。同一时候进行默认规则的排序。



能够在最后一个结果集中指定Order by子句改变排序方式。



比如:



select employee_id,job_id from employees

union

select employee_id,job_id from job_history



以上将两个表的结果联合在一起。

这两个样例会将两个select语句的结果中的反复值进行压缩,也就是结果的数据并非两条结果的条数的和。

假设希望即使反复的结果显示出来能够使用union all,比如:




2.在oracle的scott用户中有表emp

select * from emp where deptno >= 20

union all

select * from emp where deptno <= 30

这里的结果就有非常多反复值了。

有关union和union allkeyword须要注意的问题是:



union 和 union all都能够将多个结果集合并,而不不过两个,你能够将多个结果集串起来。

使用union和union all必须保证各个select 集合的结果有同样个数的列,而且每一个列的类型是一样的。但列名则不一定须要同样,oracle会将第一个结果的列名作为结果集的列名。

比如以下是一个样例:


select empno,ename from emp

union

select deptno,dname from dept

我们没有必要在每个select结果集中使用order by子句来进行排序,我们能够在最后使用一条order by来对整个结果进行排序。比如:

select empno,ename from emp

union

select deptno,dname from dept

order by ename;

mysql union和union all 的差别以及使用的更多相关文章

  1. 【转】Mysql联合查询union和union all的使用介绍

    Mysql的联合查询命令UNION和UNION ALL,总结了使用语法和注意事项,以及学习例子和项目例子,需要的朋友可以参考下 一.UNION和UNION ALL的作用和语法 UNION 用于合... ...

  2. mysql中union与union all的区别

    当查询表结构完全相同的多张表的数据时: 1.当查询条件完全相同且不包括主键,此时用union查询会过滤掉查询出的重复的记录,及漏查记录:使用union all进行查询,则会查出所有的符合条件的记录,保 ...

  3. MySQL UNION 与 UNION ALL 语法与用法

    MySQL UNION 语法 MySQL UNION 用于把来自多个 SELECT 语句的结果组合到一个结果集合中.语法为: SELECT column,... FROM table1 UNION [ ...

  4. MySQL中UNION和UNION ALL的使用

    在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同. MySQL中的UNION UNION在进行表链接后会筛选掉重复的记录,所以在表链接后 ...

  5. MySQL全连接(Full Join)实现,union和union all用法

    MySQL本身不支持你所说的full join(全连接),但可以通过union来实现 ,下面是一个简单测试,可以看看: mysql> CREATE TABLE a(id int,name cha ...

  6. Union和Union All的差别

    如果我们有一个表Student,包含下面字段与数据: drop table student; create table student ( id int primary key, name nvarc ...

  7. mysql union 与 union all 语法及用法

    1.mysql   union  语法 mysql   union 用于把来自多个select  语句的结果组合到一个结果集合中.语法为: select  column,......from tabl ...

  8. 【连接查询】mySql多表连接查询与union与union all用法

    1.准备两个表 表a: 结构: mysql> desc a; +-------+-------------+------+-----+---------+-------+ | Field | T ...

  9. MySQL 常用语法 之 UNION与UNION ALL

    下面讲一下mySql中的union和union all 的功能以及区别 A union B 是将表A的数据和表B的数据连接成一张表,前提是查询的两张表的列数一定要一样否则出错. A union all ...

随机推荐

  1. [POJ1980]Unit Fraction Partition(搜索)

    Unit Fraction Partition Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 4571   Accepted ...

  2. [BZOJ5011][JXOI2017]颜色

    5011: [Jx2017]颜色 Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 84  Solved: 46[Submit][Status][Disc ...

  3. 【数论】【原根】【动态规划】【bitset】2017四川省赛 K.2017 Revenge

    题意: 给你n(不超过200w)个数,和一个数r,问你有多少种方案,使得你取出某个子集,能够让它们的乘积 mod 2017等于r. 2017有5这个原根,可以使用离散对数(指标)的思想把乘法转化成加法 ...

  4. 【分类讨论】【spfa】【BFS】Codeforces Round #416 (Div. 2) D. Vladik and Favorite Game

    那个人第一步肯定要么能向下走,要么能向右走.于是一定可以判断出上下是否对调,或者左右是否对调. 然后他往这个方向再走一走就能发现一定可以再往旁边走,此时就可以判断出另一个方向是否对调. 都判断出来以后 ...

  5. python一个简单的爬虫测试

    之前稍微学了一点python,后来一直都没用,今天稍微做一个小爬虫试一试.. 参考了: http://www.cnblogs.com/fnng/p/3576154.html 太久没用了,都忘记pych ...

  6. [工具开发]Proxpy Web Scan设计与实现

    组内交流培训

  7. 【转】记录PHP、MySQL在高并发场景下产生的一次事故

    看了一篇网友日志,感觉工作中值得借鉴,原文如下: 事故描述 在一次项目中,上线了一新功能之后,陆陆续续的有客服向我们反应,有用户的个别道具数量高达42亿,但是当时一直没有到证据表示这是,确实存在,并且 ...

  8. Inno Setup入门(十六)——Inno Setup类参考(2)

    Inno Setup入门(十六)——Inno Setup类参考(2) http://379910987.blog.163.com/blog/static/33523797201112755641236 ...

  9. mysql 按年月查询

    查询2017的数据:select * from table where year(column)='2017';查找月份为12的数据:select * from table where month(c ...

  10. 在XC2440上实现使用U盘自动更新系统的uboot

    转:http://blog.chinaunix.net/uid-22030783-id-3347599.html 此版本uboot在XC2440_uboot_V1.3版本上修改得来,是为我们的一个大客 ...