一、什麼是主鍵、外來鍵:
關係型資料庫中的一條記錄中有若干個屬性,若其中
某乙個屬性組(注意是組)能唯一標識一條記錄
,該屬性組就可以成為乙個主鍵
比如
學生表(
學號,姓名,性別,班級)
其中每個學生的
學號是唯一的,
學號就是乙個主鍵
課程表(
課程編號
,課程名,學分)
其中課程編號
是唯一的,
課程編號
就是乙個主鍵
成績表(
學號,課程號
,成績)
成績表中單一乙個屬性無法唯一標識一條記錄,學號和課程號的組合才可以唯一標識一條記錄,所以
學號和課程號的屬性組是乙個主鍵
成績表中的學號不是成績表的主鍵,但它和學生表中的學號相對應,並且學生表中的學號是學生表的主鍵,則稱成績表中的學號是學生表的外來鍵
同理 成績表中的課程號是課程表的外來鍵
定義主鍵和外來鍵主要是為了維護關聯式資料庫的完整性,總結一下:
主鍵是能確定一條記錄的唯一標識
,比如,一條記錄包括身份正號,姓名,年齡。身份證號是唯一能確定你這個人的,其他都可能有重複,所以,身份證號是主鍵。
外來鍵用於與另一張表的關聯
。是能確定另一張表記錄的字段,
用於保持資料的一致性
。比如,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...