高频面试八股文原理篇(六) mysql数据库的左连接,右连接,内链接有何区别

目录

内连接与外连接的区别

在sql中l外连接包括左连接(left join )和右连接(right join),全外连接(full join),内连接(inner join)


内连接与外连接的区别

自连接
一个表与它自身进行连接,数据均在一张表中。

  • 内连接

多表联查的另一种书写形式,可以匹配出两张表中符合查询条件的数据,其中包含等值连接、非等值连接、自然连接。

等值连接
       连接条件中使用“=”进行连接查询,结果集中包含重复列
非等值连接
      连接条件中使用非=进行连接查询
自然连接
      使用两表中的同名列进行等值连接查询(列名及列数据类型均一致,等值连接中不做列同名要求),结果集中去除重复列,是去除重复列的等值连接

  • 外连接

主要分为左外连接、右外连接、全外连接
 

在sql中l外连接包括左连接(left join )和右连接(right join),全外连接(full join),内连接(inner join)

  • 左外连接(左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。

将返回右表的所有行。如果左表的某行在右表中没有匹配行,则将为右表返回空值。

以左表为主表,右表没数据为null

 

  • 右外连接(右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。

将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值;

以右表为主表,左表中没数据的为null

 

  • 全外连接(全连接):返回左右表中所有的记录和左右表中连接字段相等的记录。

FULL JOIN 或 FULL OUTER JOIN

完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。

如果表之间有匹配行,则整个结果集行包含基表的数据值。

 

  • 内连接

内连接则不要求两属性列同名,可以用using或on来指定某两列字段相同的连接条件。

 

 Select * from table1 inner join table2 on table1.A=table2.E;

变型: