主鍵與外來鍵

2021-07-25 06:42:52 字數 1113 閱讀 1084

一、什麼是主鍵、外來鍵:

關係型資料庫中的一條記錄中有若干個屬性,若其中

某乙個屬性組(注意是組)能唯一標識一條記錄

,該屬性組就可以成為乙個主鍵 

比如  

學生表(

學號,姓名,性別,班級) 

其中每個學生的

學號是唯一的,

學號就是乙個主鍵 

課程表(

課程編號

,課程名,學分) 

其中課程編號

是唯一的,

課程編號

就是乙個主鍵 

成績表(

學號,課程號

,成績) 

成績表中單一乙個屬性無法唯一標識一條記錄,學號和課程號的組合才可以唯一標識一條記錄,所以 

學號和課程號的屬性組是乙個主鍵

成績表中的學號不是成績表的主鍵,但它和學生表中的學號相對應,並且學生表中的學號是學生表的主鍵,則稱成績表中的學號是學生表的外來鍵 

同理 成績表中的課程號是課程表的外來鍵 

定義主鍵和外來鍵主要是為了維護關聯式資料庫的完整性,總結一下:

主鍵是能確定一條記錄的唯一標識

,比如,一條記錄包括身份正號,姓名,年齡。身份證號是唯一能確定你這個人的,其他都可能有重複,所以,身份證號是主鍵。 

外來鍵用於與另一張表的關聯

。是能確定另一張表記錄的字段,

用於保持資料的一致性

。比如,a表中的乙個字段,是b表的主鍵,那他就可以是a表的外來鍵。二、  主鍵、外來鍵和索引的區別 收藏

主鍵、外來鍵和索引的區別?

主鍵外來鍵

索引定義:

唯一標識一條記錄,不能有重複的,不允許為空

表的外來鍵是另一表的主鍵, 外來鍵可以有重複的, 可以是空值

該欄位沒有重複值,但可以有乙個空值

作用:用來保證資料完整性

用來和其他表建立聯絡用的

是提高查詢排序的速度

個數:主鍵只能有乙個

乙個表可以有多個外來鍵

乙個表可以有多個惟一索引

聚集索引和非聚集索引的區別?

聚集索引一定是唯一索引。但唯一索引不一定是聚集索引。

聚集索引,在索引頁裡直接存放資料,而非聚集索引在索引頁裡存放的是索引,這些索引指向專門的資料頁的資料。

Mysql 主鍵與外來鍵

這的pri和mul的含義是什麼意思呢?1.如果key是空的,那麼該列值的可以重複,表示該列沒有索引,或者是乙個非唯一的復合索引的非前導列 2.如果key是pri,那麼該列是主鍵的組成部分 3.如果key是uni,那麼該列是乙個唯一值索引的第一列 前導列 並別不能含有空值 null 4.如果key是m...

Sql 主鍵與外來鍵

三張表 s s sname,gender,age c c cname,tname sc sc s c grade s 為學生號 主鍵 sname為學生姓名,c 為課程號 主鍵 cname為課程名,tname為老師姓名,sc中使用外來鍵關聯 請編寫sql語句完成下列操作 1.將 oracle 成績最高...

mysql 主鍵引用外來鍵 mysql 主鍵與外來鍵

一 主鍵詳解,引用自 1 要設定主鍵自增的話字段必須是整形數字。二 外來鍵詳解 引用自 三 mysql列屬性。主鍵,唯一鍵,自增等 引用自 1 列屬性有很多,大致如下 null not null default primary key unique key auto increment commen...