SQL Server连接表

SQL Server连接表

一、连接表(Joins)。

  1. 为什么要连接表:在关系数据库中,数据分布在多个逻辑表中。要获得完整有意义的数据集,需要使用连接来查询这些表中的数据。

  2. SQL Server支持多种连接:包括 [内连接],[左连接],[右连接],[全外连接]和[交叉连接]。

     - 内连接(INNER JOIN):如果表中有至少一个匹配,则返回行。
     - 左连接(LEFT JOIN):即使右表中没有匹配,也从左表返回所有的行。
     - 右连接(RIGHT JOIN):即使左表中没有匹配,也从右表返回所有的行。
     - 全外连接(FULL OUTER JOIN):只要其中一个表中存在匹配,则返回行。
     - 交叉连接(CROSS JOIN):返回两个表中行的笛卡尔积。
    
  3. 每种连接类型指定SQL Server如何使用一个表中的数据来选择另一个表中的行。

二、SQL Server内连接(INNER JOIN)。

  1. 内连接是SQL Server中最常用的连接之一,内部联接子句用于查询来自两个或多个相关表的数据。

  2. 用法:

    SELECT select_list FROM T1 INNER JOIN T2 ON join_predicate; 
    
  3. 在上面语法中,select_list是要从T1 和 T2表中查询数据列名,在FROM子句后面指定主表( T1 ),在INNER JOIN后面指定第二个表( T2 ),只有ON后面的连接谓词的计算结果为TRUE,则匹配的T1和T2行的列值将合并为一个新行并包含在结果集中。

三、SQL Server左连接(LEFT JOIN)。

  1. LEFT JOIN 子句用于查询来自多个表的数据。它返回左表中的所有行和右表中的匹配行。如果在右表中找不到匹配的行,则使用 NULL 代替显示。

  2. 用法:

    SELECT select_list FROM T1 LEFT JOIN T2 ON join_predicate;
    
  3. 在上面语法中,select_list是要从T1 和 T2表中查询数据列名,在FROM子句后面指定左表( T1 ),在LEFT JOIN后面指定右表( T2 ),只有ON后面的连接谓词的计算结果为TRUE,则匹配的T1和T2行的列值将合并为一个新行并包含在结果集中。但如果T2没有符合的值,则查询将左表中的行的列值与来自右表的每个列值的 NULL 组合。

四、SQL Server右连接(RIGHT JOIN)。

  1. RIGHT JOIN 子句组合来自两个或多个表的数据。它返回左表中的匹配行和右表中的所有行。如果在左表中找不到匹配的行,则使用 NULL 代替显示。

  2. 用法:

    SELECT select_list FROM T1 RIGHT JOIN T2 ON join_predicate;
    
  3. 在上面语法中,select_list是要从T1 和 T2表中查询数据列名,在FROM子句后面指定左表( T1 ),在RIGHT JOIN后面指定右表( T2 ),返回一个结果集,该结果集包含右表中的所有行,无论是否具有左表中的匹配行。如果右表中的行没有来自右表的任何匹配行,则结果集中右表的列将使用 NULL 值。

五、SQL Server全外链接(FULL OUTER JOIN)。

  1. 当左表或右表中存在匹配项时,该命令将返回所有行;找不到匹配的行,则使用 NULL 代替显示。

  2. 用法:

    SELECT select_list FROM T1 FULL OUTER JOIN T2 ON join_predicate;
    
  3. 在上面语法中,select_list是要从T1 和 T2表中查询数据列名,在FROM子句后面指定表1( T1 ),在FULL OUTER JOIN后面指定表2( T2 ),返回一个结果集,该结果集包含两个表中的所有行,找不到匹配的行,则使用 NULL 代替显示。

六、SQL Server 交叉连接(CROSS JOIN)。

  1. CROSS JOIN连接两个或多个不相关的表,该连接返回两个表中行的笛卡尔积。

  2. 用法:

    SELECT select_list FROM T1 CROSS JOIN T2 ON join_predicate;
    
  3. 在上面语法中,select_list是要从T1 和 T2表中查询数据列名,连接将第一个表(T1)中的每一行与第二个表(T2)中的每一行连接起来。与INNER JOIN或LEFT JOIN不同,交叉连接不会在连接的表之间建立关系。

七、SQL Server自连接。

  1. 自联接用于将表连接到自身(同一个表)。它对于查询分层数据或比较同一个表中的行很有用。自联接使用内连接或左连接子句。 由于使用自联接的查询引用同一个表,因此表别名用于为查询中的表分配不同的名称。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值