union与union all 的区别以及join的用法

1、union与union all的区别
Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

Union All,对两个结果集进行并集操作,包括重复行,不进行排序;

可以在最后一个结果集中指定Order by子句改变排序方式。

2、join的用法小结

   2.1、外连接 (左向外联接、右向外联接或完整外部联接)
   2.1.1左连接:left join 或 left outer join
左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)。
   2.1.2右连接:right join 或 right outer join
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
   2.1.3完整外部联接:full join 或 full outer join
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

   2.2内连接:join 或 inner join
只返回符合条件的table1和table2的列
(select * from table1 join table2 on table1.id=table2.id
等价select a.*,b.* from table1 a,table2 b where a.id=b.id)

  2.3 交叉连接(完全)

笛卡尔积=m*n








  




猜你喜欢

转载自fangzi370307.iteye.com/blog/1739118