合并查询

本文详细介绍了SQL中的四种集合操作:union、unionall、intersect和minus的用法及区别。union用于获取两个结果集的并集并自动去除重复行;unionall同样获取并集但保留重复行;intersect获取两个结果集的交集;minus则返回存在于第一个集合中但不在第二个集合中的数据。

有时在实际应用中,为了合并多个 select 语句的结果,可以使用集合操作符号 union,union all,intersect,minus  
多用于数据量比较大的数据局库,运行速度快。  
1. union  
该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中重复行。  
SELECT ename, sal, job FROM emp WHERE sal >2500  
UNION  
SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';  


2.union all  
该操作符与 union 相似,但是它不会取消重复行,而且不会排序。  
SELECT ename, sal, job FROM emp WHERE sal >2500  
UNION ALL  
SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';
  
3. intersect  
   使用该操作符用于取得两个结果集的交集。  
SELECT ename, sal, job FROM emp WHERE sal >2500  
INTERSECT  
SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';  


4. minus  
使用改操作符用于取得两个结果集的差集,他只会显示存在第一个集合中,而不存在第二个集合中的数据。  
SELECT ename, sal, job FROM emp WHERE sal >2500  
MINUS  
SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';  
(MINUS 就是减法的意思)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值