博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
13.组合查询--SQL
阅读量:7286 次
发布时间:2019-06-30

本文共 982 字,大约阅读时间需要 3 分钟。

利用UNION操作符将多条SELECT语句组合成一个结果集。

主要有两种情况需要使用组合查询:

  • 在一个查询中从不同的表返回结构数据;
  • 对一个表执行多个查询,按一个查询返回数据。

UNION规则

  • UNION必须由两条或两条以上的SELECT语句组成,语句之间用关键字UNION分隔(因此,如果组合四条SELECT语句,将要使用三个UNION关键字)。
  • UNION中的每个查询必须包含相同的列、表达式或聚集函数(不过,各个列不需要以相同的次序列出)。
  • 列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含转换的类型(例如,不同的数值类型或不同的日期类型)。

包含或取消重复的行

UNION从查询结果集中自动去除了重复的行;

换句话说,它的行为与一条SELECT语句中使用多个WHERE子句条件一样。

使用UNION时,重复的行会被自动取消。这是UNION的默认行为,如果愿意也可以改变它。事实上,如果想返回所有的匹配行,可使用UNION A LL而不是UNION。

 

SELECT cust_name, cust_contact, cust_emailFROM CustomersWHERE cust_state IN ('IL','IN','MI')UNIONSELECT cust_name, cust_contact, cust_emailFROM CustomersWHERE cust_name = 'Fun4All';

分析▼

这条语句由两条SELECT语句组成,之间用UNION关键字分隔。UNION指示DBMS执行这两条SELECT语句,

并把输出组合成一个查询结果集

提示:UNION的限制

使用UNION组合SELECT语句的数目,SQL没有标准限制。但是,最好是参考一下具体的DBMS文档,了解它是否对UNION能组合的最大语
句数目有限制。
警告:性能问题
多数好的DBMS使用内部查询优化程序,在处理各条SELECT语句前组合它们。理论上讲,这意味着从性能上看使用多条WHERE子句条件还
是UNION应该没有实际的差别。不过我说的是理论上,实践中多数查询优化程序并不能达到理想状态,所以最好测试一下这两种方法,看哪
种工作得更好。

 

 

 

 

转载于:https://www.cnblogs.com/lbonet/p/7551666.html

你可能感兴趣的文章
九宫格与函数
查看>>
solaris 10u11 安装vim7.4
查看>>
Maven(八)pom.xml简介
查看>>
IGP-LAB-RIP-3
查看>>
会说话的vc编译器(一)
查看>>
Exchange 2013部署系列之(一)系统要求
查看>>
利用itext导出word表格,处理图片
查看>>
我的友情链接
查看>>
数据结构(一)循环链表 约瑟夫环
查看>>
fastDFS+java api + sping mvc +JPA+Hibernate
查看>>
解读关于HTML5的六个传说
查看>>
Solaris ZONE
查看>>
Android APP应用开发视频教程
查看>>
unrecognized selector sent to class 0x91cde0
查看>>
python学习笔记-Day10--(进程\线程\协程)
查看>>
linux学习第4天(自习)
查看>>
持续更新:Centos常用方便的命令与技巧集合
查看>>
ubuntu 终端vi和gedit中文乱码解决方案
查看>>
Linux下无连接的套接字通信C实现
查看>>
ipv6
查看>>