数据库
首页 > 数据库> > sql连接查询的分类和区别

sql连接查询的分类和区别

作者:互联网

表的连接在使用中是非常频繁的,那么连接查询的具体的逻辑有哪些呢?这些不同的连接又有什么区别呢?

1. 连接的分类  :

主要分为:内连接、外连接(左连接、右连接 、全连接)、交叉连接(笛卡尔积)

内连接(INNER JOIN):取两表的交集

左外连接:左连接是查询出左表的所有数据,右表中有对应的则显示出来,没有对应的则显示为null;

右外连接:右连接的道理和左连接的道理类似,以右表为准,查询出右表的所有数据,左表中有对应的则显示出来,没有对应的则显示为null.;

全外连接:完全外连接是首先按照左边的表进行遍历,然后按照右边的表进行遍历,这样的结果一定会出现同一行中,左面的表有值,而右边的表是null,右面的表有值,而左面的表是null的现象啦。;

交叉连接:交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。相当于两个表中的所有行进行排列组合。若表a有X行,表b有Y行,则将返回XY行记录;

自然连接:自然连接是一种特殊的等值连接,自然连接无需指定连接列,SQL会检查两个表中是否相同名称和类型的列,如果没有则返回错误。它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉;

联合查询(union join):是一种很少见的连接方式。Oracle、MySQL均不支持,作用是:找出全外连接和内连接之间差异的所有行。这在数据分析中排错中比较常用。也可利用数据库的集合操作来实现此功能;

 

标签:左表中,所有,查询,对应,sql,null,连接
来源: https://www.cnblogs.com/renjie1105/p/15420397.html