现在的位置: 首页 > 综合 > 正文

DB基本概念之 — 表连接

2019年10月15日 ⁄ 综合 ⁄ 共 912字 ⁄ 字号 评论关闭

数据库: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,这个上级也是这个表里面的职工。

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


抱歉!评论已关闭.