union与union all的区别

本文介绍了SQL中UNION和UNION ALL的用法区别。UNION会对合并结果去重,UNION ALL则直接合并所有结果。通过连接数据库oaec,对员工表emp和部门表dept的部门编号进行合并操作展示两者差异,强调要依实际需求选择,避免混淆。

union是将合并之后的结果进行去重记录,并显示;

union all是将所有的结果直接合并;

具体我们直接用案例来看一下,老规矩,我们先连接数据库,进入到数据库oaec中,查看我们的两张表格,一张员工表emp,一张部门表dept;

连接数据库

练习:将两张表格的部门编号,合并起来;

首先试一下,union all,代码如下:

select deptno from emp

union all

select did from dept;

 

合并两张表格的部门编号

这样就将,两张表格中的部门编号合并起来了,而且并未去重,我们用公式统计一下,这个实际有多少数值:

select count(*) from select deptno from emp

union all

select did from dept rel;

运行之后,得到的结果是9,则上面统计的是正确的;

统计总共多少条记录

现在再试一下,union的结果:

 

合并两张表的部门编号

这个结果只有3个,其实的数据都被去重了。在面试中,经常会问到这样的问题,所以各位,一定要记清两个的用法,具体应该用哪个,得根据实际工作中的需求去看,这个没有一个绝对的标准的。

实际上,这个知识点比较简单,但是之前就有同事一不小心就搞混淆了,所以这里特意和大家分享一下,若是有什么问题,欢迎给我留言或私信,我们一起分享,一起学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值