oracle知识整理(1) union和union all的区别,left join和right join的区别(各种join的区别)

union和union all的区别

UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。

  • UNION相当于真正的关联,会进行连接+排序+去重复
  • UNION ALL相当于简单把结果连接起来,速度快
  1. UNION在进行表链接后将会按照字段的顺序进行排序,会筛选掉重复的记录,Union All不会去除重复记录,也不存在排序。

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

为了删除重复项,必须对结果集进行排序,这可能会影响UNION的性能,具体取决于要排序的数据量以及各种RDBMS参数的设置(对于具有WORKAREA_SIZE_POLICY = AUTO的Oracle PGA_AGGREGATE_TARGET或 如果WORKAREA_SIZE_POLICY = MANUAL,则为SORT_AREA_SIZE和SOR_AREA_RETAINED_SIZE。

各种join

powered by zhengkai.blog.csdn.net

  • left join(左联接) :返回包括左表中的所有记录和右表中联结字段相等的记录
  • right join(右联接):返回包括右表中的所有记录和左表中联结字段相等的记录
  • inner join(等值连接) :只返回两个表中联结字段相等的行
  • A left join B = B right join A
  • CROSS JOIN : 笛卡尔乘积(所有可能的行对)
  • LEFT OUTER JOIN(左外连接) : A表满足条件的行,和B表的所有行
  • RIGHT OUTER JOIN(右外连接) : B表满足条件的行,和A表的所有行
  • FULL OUTER JOIN(全连接) : AB表所有的行

sql join表

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值