SQL server基礎之(表間關聯)
首先先準備一些資料
--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
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中對應的資料的話,那麼則可以看出外連線之間的區別)