连接表的作用是将那些具有完整逻辑的表相互连接起来获得具有完整意义的数据库,从而进行多表查询。连接表有很多种,主要包括内连接、左连接、右连接、全外连接和交叉连接。
内连接:关键词:inner
内连接是使用最多的连接之一,用于查询两个或多个相关表的数据,基本语法如:
其中T1为主表,inner join将T1与T2中的每一行相比较,以查找满足连接谓词的所有行,如果连接谓词结果为true,则T1和T2的列值合并成一个新行包括在结果集中,如图:
左连接:关键词:left
左连接也是常用的表,它的主要是将左表中的所有行与右表相匹配,如果在右表中找不到匹配的行将会用null表示,其表达式如下:
T1为左表,T2为右表,举个例子将学生表与成绩表左连接,结果集如下:
可以看到未匹配的值将会用null表示
右连接:关键词:right
和左连接意思差不多,只不过是将右表中的所有行与左表相匹配
交叉连接:关键词:cross
交叉连接将第一个表和第二个表中的每一个行都连接起来,假设第一个表有m行,第二个表有n行,那么连接之后就有m×n行,公式如下:
注意交叉连接是连接两个或多个不相关的表
自连接:将表连接到自身,可以使用内连接或左连接,由于自连接的查询引用同一个表,所以表名用于查询中的表分配不同的名称
全外连接:关键词:full outer
当左表或右表中存在匹配项时,将命令返回所有行
以上便是我对SQL SERVER连接表的部分看解,如果有疑问的请在评论区留言。