SQL server基礎之(表間關聯)

2021-06-01 04:41:19 字數 1362 閱讀 4528

首先先準備一些資料

--e-r圖

--學生(學號,姓名,性別,生日,班級,密碼)

--課程(編號,課程)

--分數(學號,編號,分數)

很簡單的三個表。。接著我們來用幾種常見的連線方法把三張表連線在一起

*注意:三張表之間的關係

--將三張表整合到一起,顯示全部資訊

1:內連線

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

sqlserver 2005 交叉表和層次關係查詢

sqlserver2005已經方便提供交叉表和層次關係查詢,下面分別舉例說明 交叉表查詢 create table sales id int,area nvarchar 20 product id nvarchar 4 go insert into sales select 1,aa a001 un...

如何獲取SQLSERVER所有表的外來鍵關係引數

select 主表名 object name b.rkeyid 主鍵列id b.rkey 主鍵列名 select name from syscolumns where colid b.rkey and id b.rkeyid 外來鍵表id b.fkeyid 外來鍵表名稱 object name b....

SQL Server 臨時表插入基礎語法

有關臨時表的資料插入 1 把臨時表中的資料插入到另乙個表中 insert into 表 select from temp 2 把乙個表中字段複製到臨時表中 select into temp from 表 where 3 本地臨時表的名稱以單個數字符號 打頭 它們僅對當前的使用者連線是可見的 4 當使...