union和union all的区别
UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。
- UNION相当于真正的关联,会进行连接+
排序
+去重复
- UNION ALL相当于简单把结果连接起来,
速度快
-
UNION在进行表链接后将会按照字段的顺序进行排序,会筛选掉重复的记录,Union All不会去除重复记录,也不存在排序。
-
所以从效率上说,
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表
转载:https://blog.csdn.net/moshowgame/article/details/103808897
查看评论