SQL server基础之(表间关联)

来源:互联网 发布:淘宝自动打招呼软件 编辑:程序博客网 时间:2024/06/03 16:49

首先先准备一些数据

--E-R图

--学生(学号,姓名,性别,生日,班级,密码)

--课程(编号,课程)

--分数(学号,编号,分数)

(学生表:Student)

(课程表:KC)

(分数表:Coure)

很简单的三个表。。接着我们来用几种常见的连接方法把三张表连接在一起

*注意:三张表之间的关系

--将三张表整合到一起,显示全部信息

1:内连接

select Student.Sid,Student.sName,Student.sex,Student.Bir,Student.class,KC.kc,Coure.coure from

Student inner join Coure

on Student.Sid=Coure.Sid

inner join KC

on KC.Cid=Coure.Cid

2:自然连接

select a.Sid,a.sName,a.sex,a.Bir,a.class,b.kc,c.coure from

Student a,KC b,Coure c

where a.Sid=c.Sid and b.Cid=c.Cid

3:外连接(搜索出来非匹配行,搜索出来按方向显示)

--<1>左外连接

select Student.Sid,Student.sName,Student.sex,Student.Bir,Student.class,KC.kc,Coure.coure from

Student left outer join Coure

on Student.Sid=Coure.Sid

left outer join KC on

KC.Cid=Coure.Cid

--<2>右外连接

select Student.Sid,Student.sName,Student.sex,Student.Bir,Student.class,KC.kc,Coure.coure  from

Student right outer join Coure

on Student.Sid=Coure.Sid

right outer join KC

on KC.Cid=Coure.Cid

区分几种连接之间的区别,已选择适当的时候选择适当的连接方法

表中数据齐全的话,那么以上几种连接方法显示的效果则一模一样。。如果(例如),KC 或者 Coure这个表中没有和Student中对应的数据的话,那么则可以看出外连接之间的区别)

原创粉丝点击