DB基本概念之 --- 表连接

数据库:SQLServer 2008

我们先创建两个表

Testuser表:描述所有注册用户,每个用户有一个唯一的用户ID :

=== 【userid,username,password】

UserInfo表:对应TestUser表中的用户的其他一些基本信息,userid即为用户ID(注意,为了显示,其中有两个相同的用户ID)。

=== 【infoid,userid,school,mail】


==========================================================================================

1左连接

以左边的表为基准来连接两个表,左边所有满足条件的项都会列出来,右边有对应的数据如果没有,只能以NULL显示。

原则是这样: 左表有的话一定会显示(右表若没有则补NULL),右边有的左边也有的也一定会显示。

 

2右连接

以右边的表为基准,左表中的记录只有当右表中有对应的记录的时候才会显示出来。


可以看到左表中的0,3,4这几项并没有在结果中显示出来。

原则: 只显示那些右表对应的元组。

===========================================================================================


3全连接

二个表中的数据都显示出来,这里演示效果与左连接一样

 


4内连接

userid字段同时存在在两个表中的那些记录才显示出来。


===========================================================================================

(前面“左连接”和“右连接”对应,“全连接”和“内连接”对应)

 

5交叉连接

没有 WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(table1和table2交叉连接产生5*3=15条记录)。

 


6自连接

新建一个职工表,每一个职工都有一个ID,也有一个上级ID,这个上级也是这个表里面的职工。

我们使用自连接来查询出所有职工,以及其上级职工。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值