内连接,外连接,自连接

早就听说了内连接与外连接,以前视图中使用过、这次自考也学习了,只是简单理解,现在深入探究学习(由于上篇博客的出现)与实践:

概念

关键字: 左右连接 数据表的连接有:

1、内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现

 

2、外连接: 包括 (1)左外连接(左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表都不加限制)

 

3、自连接(连接发生在一张基表内)

 

实例

以下是自己通过小实例来深刻的理解,以免混淆

 我有两张简单的信息表来说明问题

test1:

 

test2:

 

交叉连接(CROSS JOIN)也叫做笛卡尔积

  1. <span style="font-size:18px">SELECT     dbo.test1.name, dbo.test1.sex, dbo.test2.name2, dbo.test2.age  
  2. FROM         dbo.test1 CROSS JOIN  
  3.                       dbo.test2</span>  


 

内连接

  1. <span style="font-size:18px">SELECT     dbo.test1.name, dbo.test1.sex, dbo.test2.name2, dbo.test2.age  
  2. FROM         dbo.test1  inner JOIN dbo.test2  on test1.name =test2.name2</span>  


 

左外连接

  1. <span style="font-size:18px">SELECT     dbo.test1.name, dbo.test1.sex, dbo.test2.name2, dbo.test2.age  
  2. FROM         dbo.test1  left JOIN dbo.test2  on test1.name =test2.name2</span>  


右外连接

  1. <span style="font-size:18px">SELECT     dbo.test1.name, dbo.test1.sex, dbo.test2.name2, dbo.test2.age  
  2. FROM         dbo.test1  right JOIN dbo.test2  on test1.name =test2.name2</span>  

 

全外连接

[sql] view plain copy print ?
    <span style="font-size:18px">SELECT     dbo.test1.name, dbo.test1.sex, dbo.test2.name2, dbo.test2.age  
    FROM         dbo.test1  full outer JOIN dbo.test2  on test1.name =test2.name2</span>  

  1. <span style="font-size:18px">SELECT     dbo.test1.name, dbo.test1.sex, dbo.test2.name2, dbo.test2.age  
  2. FROM         dbo.test1  full outer JOIN dbo.test2  on test1.name =test2.name2</span>  


自连接

    <span style="font-size:18px">
SELECT     dbo.a.name, dbo.b.name   FROM         dbo.test1 as a  ,dbo.test1 as b</span>  


总结

 

       通过这几种数据的关系可以查找自己想要的数据不用太拘于主外键了(以前没有主外键就不会查找有关系的数据了),这些知识看似简单,但是在大型数据的分析与使用中,可以简化我们的数据逻辑,提高我们的查询效率。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值