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. 浅谈OI中的提交答案

    在OI中,题目有三类: 传统题 交互题 提交答案题 今天来了解一下第三类 概述 传统题:给你一个题面,你需要交一个程序,评测姬会用你的程序运行你看不到的一些测试点,用输出和正确答案比较 提交答案题:给 ...

  2. 【状压dp】Islands and Bridges

    Islands and Bridges Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 11034   Accepted: 2 ...

  3. 【后缀自动机】hdu6194 string string string

    题意:给你一个字符串和一个正整数K,让你输出恰好出现K次的子串的数量. 对后缀链接树进行dp预处理后,SAM每个点的endpos大小就是该点结尾的子串出现的次数,maxlen-minlen+1就是子串 ...

  4. 【Splay】Codeforces Round #424 (Div. 1, rated, based on VK Cup Finals) B. Cards Sorting

    Splay要支持找最左侧的最小值所在的位置.类似线段树一样处理一下,如果左子树最小值等于全局最小值,就查左子树:否则如果当前节点等于全局最小值,就查当前节点:否则查右子树. 为了统计答案,当然还得维护 ...

  5. bzoj 2468: [中山市选2010]三核苷酸

    2468: [中山市选2010]三核苷酸 Description 三核苷酸是组成DNA序列的基本片段.具体来说,核苷酸一共有4种,分别用’A’,’G’,’C’,’T’来表示.而三核苷酸就是由3个核苷酸 ...

  6. [BZOJ1007](HNOI2008)水平可见直线(半平面交习题)

    Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的.     例如,对于直线:   ...

  7. mongodb安装和配置,遇到问题和解决方法

    自己不知道怎么的,心血来潮想重新来安装和配置一下mongodb,之前自己也是按照别人的来整的,印象不深刻.第二遍安装配置遇到很多问题. 弄了两个多小时,期间遇到很多问题: 遇到的主要问题 1.拒绝访问 ...

  8. leetcode 564. Find the Closest Palindrome

    leetcode564题目地址 Given an integer n, find the closest integer (not including itself), which is a pali ...

  9. C# mvc 上传多个附件

    <div class="col-xs-12 mcp-list-item" style="margin-top:20px"> <div clas ...

  10. JavaScript 开发的45个技巧2

    http://mp.weixin.qq.com/s?src=3&timestamp=1474692926&ver=1&signature=agI3W5rKmVC6GgbdTXh ...