SQL语言中的连接表

连接表,包括:内连接、左连接、右连接、全外连接、交叉连接

1.内连接

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

语法:

①在from子句中指定主表(t1);

②在 inner join 子句和连接谓词中指定第二个表(t2);

③只有连接谓词计算为 true 的行才包 含在结果集中;

④inner join子句将表 t1 的每一行与表t2的行进行比较,以查找满足连接谓词的所有行对;

⑤如果连接谓词结果为 true ,则匹配 t1 t2 行的列值将合并为一个新行并包含在结果集中

     T1表和 T2表的内连接结果图:

      

   内连接的例子:

       

2.左连接

   语法:

         

①left join 子句用于查询来自多个表的数据。它返回左表中的所有行和右表中的匹配行

②如果在右表中找不到匹配的行,则使用 null 代替显示;

③left join句子返回左表( t1)中的所有行以及右表( t2 )中匹配的行或 null

T1表和T2表的左连接结果图:

     

左连接的例子:

        

3.右连接

   语法:

        

①right join句子组合来自两个或多个表的数据;

②right join 开始从右表中选择数据并与左表中的行匹配;

③right join返回一个结果集,该结果集包含右表中的所有行,无论是否具有左表中的匹配行;

④如果右表中的行没有来自右表的任何匹配行,则结果集中右表的列将使用 null

注意:right join right outer join是相同的。outer是关键字

  T1表和T2表的右连接结果图:

      

 右连接的例子:

     

4.全外连接

full outer join 当左表或右表中存在匹配项时,该命令将返回所有行。

全外连接的例子:

注意:full outer join关键字返回左表(customer)所有行,以及所有来自右表(orders)的行。

如果customer表中的某些行在orders表中没有匹配项,

或在orders表中的某些行在customer表中没有匹配项,

则这些行也将被列出。

5.交叉连接

①cross join连接两个或多个不相关的表;

②cross join将第一个表(t1)中的每一行与第二个表(t2)中的每一行连接起来;

③交叉连接返回两个表中行的笛卡尔积;

④若t1表中有n行,t2表中有m行,交叉连接则产生n×m

交叉连接的例子:

6.自连接

①自连接用于同一个表,对于查询分层数据或比较同一个表中的行很有用;

②自连接使用内连接或左连接子句;

③由于使用自连接的查询引用同一个表,因此表别名可分配不同的名称

注意:如果在不使用表别名的情况下,在查询中多次引用同一个表,则会出现错误。

   自连接的例子:

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值