Java教程

sql连接查询的分类和区别

本文主要是介绍sql连接查询的分类和区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

1. 连接的分类  :

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

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

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

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

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

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

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

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

 

这篇关于sql连接查询的分类和区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!