SQL Server链接表和子查询
一、 介绍:
在关系数据中,数据分布在多个逻辑表中时,要获取完整且有意义的数据时,就需要使用链接来查询这些表中的数据,在SQL Server数据库中拥有多种连接方式,有内连接、左连接、右链接、全外链接以及交叉链接,每种的链接类型指定SQL Server如何使用查询一个表中的数据来选择另一个表中的数据。
二、 内连接
内连接是SQL Server数据库中最常用的链接之一。内部链接子句用来查询来自两个或者多个相关表的数据,且其子句inner join将表1的每一行和表2的每一行来进行比较,一查找到满足链接谓词的所有行,如果链接谓词的计算结果为True,则匹配成功,反之则匹配失败。
三、 左连接
和内连接使用方式相同,用到的子句为left join,用来查询来自多个表的数据,返回左表中的所有行数以及右表中所匹配的行数,如果在右表中找不到匹配的行数,则会使用null来代替显示,如果一对行导致连接谓词计算为 TRUE ,则将组合这些行中的列值以形成新行,然后将其包含在结果集 中。 如果左表( T1 )中的行没有与来自 T2 表的任何匹配行,则查询将左表中的行的列值与来自右表的每个列 值的 NULL 组合。 简而言之, LEFT JOIN 子句返回左表( T1 )中的所有行以及右表( T2 )中匹配的行或 NULL值。
四、 右链接
和上诉左连接使用方式相似,用到子句right join,RIGHT JOIN 子句组合来自两个或多个表的数据。 RIGHT JOIN 开始从右表中选择数据并与左表中的行 匹配。 RIGHT JOIN 返回一个结果集,该结果集包含右表中的所有行,无论是否具有左表中的匹配行。 如果右表中的行没有来自右表的任何匹配行,则结果集中右表的列