在关系代数中,连接运算是由一个笛卡尔积运算和一个选取运算运构成的.首先用笛卡尔积完成对两个数据集合的乘积的运算,然后对省城的结果集合进行选区运算,确保只把分别来自两个数据集合并且具有重叠部分的行合并在一起.连接的全部意义就在于在水平方向上合并两个数据集合(通常是表),并产生一个新的结果集合,其方法是将一个数据源中的行于另一个数据源中和它匹配的行组合成一个新元祖.sql提供了多种类型的连接方式,他们之间的区别在于:从相互交叠的不同数据集合中选择用于将连接的行时所采用的方法不同.
不同的sql join
1.inner join
内连接是最常见的一种连接,它也被称为普通连接,只连接匹配就行(仅对满足条件的cross中的列).它又分为等值连接(连接条件运算符为”=”)和不等值连接(连接条件运算符不为”=”,例如between…and)
2.outer join
(1)full outer join full
join会从左表和右表那里返回所有的行.如果其中一个表的数据行在另一个表中没有匹配的行,那么对面的数据用null代替
(2)left outer join
join返回左表的全部行和右表满足on条件的行,如果左表的行在有右表中没有匹配,那么这一行右表中的数据用null代替
(3)right outer join
join返回右表的全部行和左表满足on条件的行,如果右表的行在左表中没有匹配,那么这一行左表中对应的数据用null代替.
3.cross join
cross对两个表执行笛卡尔乘积,他为左表行和右表行的每种可能的组合返回一行,返回(左表行数*右表行数)行的表
4.Appendix
(1)Natural join
自然连接是一种特殊的等值连接,在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表支出查询结果的结果集合中所包括的列,并删除连接表中的重复列.
(2)自连接 某个表和其自身连接,常用在同一表内不同数据间对同一列的比较
本文摘自博文:https://blog.csdn.net/u012861978/article/details/52203818