1. 程式人生 > >SQL server基礎之(表間關聯)

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

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中對應的資料的話,那麼則可以看出外連線之間的區別)