sql union用法和sql union all用法,sql union效率
1、sql union用法
sql union在查询中可以将两个SQL 语句的结果合并起来。如果这样看的话, UNION 跟 JOIN 是相似的,两个指令都可以由多个表格中撷取资料。
sql union的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。
sql union只是将两个结果联结起来一起显示,并不是联结两个表,sql用法如下:
两个表格, StoreData_200903 表格 StoreData_200904,这两张表格的数据结构是完全一样的,只是存放了不同月份的数据库(注意:这样做是为了能够分表,而且可以按月存档数据),现在需要联合查询,就是从两个表中查询出数据,SQL 语句:
SELECT top 50 FROM StoreData_200903
UNION
SELECT top 50 FROM StoreData_200904
2、sql union all用法
sql union all这个指令的目的也是要将两个 SQL 语句的结果合并在一起。 sql union all和 sql union不同之处在于 sql union all会将每一次符合条件的数据列出来,无论数据库有无重复。
用法也很简单:
SELECT top 50 FROM StoreData_200903
UNION ALL
SELECT top 50 FROM StoreData_200904
值得注意的是,sql union all的执行效率要比sql union效率要高很多,这是因为,使用sql union需要进行排重,而sql union All 是不需要排重的,这一点非常重要,因为对于一些单纯地使用分表来提高效率的查询,完全可以使用sql union All。
还有,如果使用了union,无论是sql union还是sql union all一定要记住对数据库表加上索引!

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

在数据库中,union和union all 关键字都是将两个结果集合合并为一个,但这两者从使用和效率上来说都有所不同。

UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。如:

select * from gc_dfys
union
select * from ls_jg_dfys

这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。

而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。

从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL,如下:

select * from gc_dfys
union all
select * from ls_jg_dfys

转载于:https://www.cnblogs.com/anmoon/archive/2010/08/12/1798098.html

sql union用法和sql union all用法,sql union效率相关推荐

  1. php union用法,SQL Union用法是什么?

    sql union用法是什么? sql union用法的总结: UNION 运算符将多个 SELECT 语句的结果组合成一个结果集. (1)使用 UNION 须满足以下条件: A:所有查询中必须具有相 ...

  2. SQL性能优化-查询条件与字段分开执行,union代替in与or,存储过程代替union

    PS:概要.背景.结语都是日常"装X",可以跳过直接看优化历程 环境:SQL Server 2008 R2.阿里云RDS:辅助工具:SQL 审计 概要 一个订单列表分页查询功能,单 ...

  3. SQL游戏行业实战案例2:玩家等级(union、分组、排序)

    [面试题]某游戏数据后台设有"登录日志"和"登出日志"两张表. "登录日志"记录各玩家的登录时间和登录时的角色等级. 其中,"角色 ...

  4. union用法和enum用法

    1 union用法 C语言中的union在语法上与struct相似. union只分配最大成员的空间,所有成员共享这个空间 2 union的注意事项 union的使用受系统大小端的影响 编程:判断系统 ...

  5. SQL Server 中 with tmp 临时表的用法

    SQL Server 中 with tmp 临时表的用法 ----------with临时表用法,有时候采用临时表比采用in的效率更高,避免了全表扫描. 实例中实现了查询普通题.大题.子题目的sql ...

  6. 关于UNION ALL与 UNION 用法和区别

    (转自:http://www.cnblogs.com/EricaMIN1987_IT/archive/2011/01/20/1940188.html) UNION指令的目的是将两个SQL语句的结果合并 ...

  7. SQL、LINQ、Lambda 三种用法(转)

    SQL.LINQ.Lambda 三种用法 颜色注释: SQL LinqToSql Lambda QA 1. 查询Student表中的所有记录的Sname.Ssex和Class列. select sna ...

  8. PL/SQL中存储过程int和out的用法

    PL/SQL中存储过程int和out的用法 一 介绍 过程和函数中的in和out (1)一般来讲,过程和函数的区别在于函数可以有一个返回值:而过程没有返回值. (2)但过程和函数都可以通过out指定一 ...

  9. 【SQL 中级语法 2】自连接的用法

    SQL的连接运算根据其特征的不同,有着不同的名称,如内连接.外连接.交叉连接等.一般来说,这些连接大都是以不同的表或视图为对象进行的,但针对相同的表或相同的视图的连接也并没有被禁止.针对相同的表进行的 ...

  10. mySql中union all 及max,ifnull用法

    mySql中union all 及max,ifnull用法 selectifnull(max(d.orderNum),0) totalNum,ifnull(max(d.money),0) totalM ...

最新文章

  1. NVIDIA 认证系统
  2. 实例解析linux内核I2C体系结构
  3. pandas数据结构:Series/DataFrame;python函数:range/arange
  4. 位运算和时间复杂度的分析
  5. Qt中的模态对话框和非模态对话框
  6. Atlassian发布事故管理解决方案Jira Ops
  7. c++ 海战棋_编程入门须知:都说零基础不好学编程,那么什么是编程基础?
  8. win7修复计算机无法修复工具栏,WIN7多系统启动引导修复工具BCDautofix v1.3
  9. .Net Framework4 与.Net Framework4.0 client profile区别问题
  10. Android智能硬件开发心得总结(二)
  11. Matlab 火焰识别技术
  12. 系统中负负得正的兼容逻辑也许暂时能跑起来, 但迟早会坑人!
  13. Face Attention Network: An Effective Face Detector for the Occluded Faces
  14. 【Java】基础知识-JAXP解析XML(一)
  15. css33d画梯形,CSS3 matrix3d矩形到梯形转换
  16. 谷粒商城 高级篇 (七) --------- 性能压测
  17. 编译原理之形式语言文法分类
  18. 基于微信维修报修物业小程序系统设计与实现 开题报告
  19. 开题报告:基于java电影院选座售票系统 毕业设计论文开题报告模板
  20. docker-compose 安装多版本php

热门文章

  1. delphi操作word
  2. Sharepoint Portal Server 2005?
  3. 在SQUIRREL中使用PHOENIX操作HBASE——创建表和视图
  4. 一线大厂都在跑的微服务,真有这么香吗?
  5. 自从上了 Prometheus 监控,睡觉真香!
  6. 从3000元月薪码农到首席架构师的经历
  7. 最新骗局,速查银行卡余额!
  8. 程序员如何保护自己?
  9. 一位读者关于买房的困惑
  10. 寒心!一个开发者就这样离开了!