資料庫的主鍵與外來鍵
一、什麼是主鍵、外來鍵:
關係型資料庫中的一條記錄中有若干個屬性,若其中某乙個屬性組(注意是組)能唯一標識一條記錄,該屬性組就可以成為乙個主鍵
比如:學生表(學號,姓名,性別,班級)
其中每個學生的學號是唯一的,學號就是乙個主鍵
課程表(課程編號,課程名,學分)
其中課程編號是唯一的,課程編號就是乙個主鍵
成績表(學號,課程號,成績)
成績表中單一乙個屬性無法唯一標識一條記錄,學號和課程號的組合才可以唯一標識一條記錄,所以 學號和課程號的屬性組是乙個主鍵
成績表中的學號不是成績表的主鍵,但它和學生表中的學號相對應,並且學生表中的學號是學生表的主鍵,則稱成績表中的學號是學生表的外來鍵
同理 成績表中的課程號是課程表的外來鍵
定義主鍵和外來鍵主要是為了維護關聯式資料庫的完整性,總結一下:
1.主鍵是能確定一條記錄的唯一標識,比如,一條記錄包括身份正號,姓名,年齡。
身份證號是唯一能確定你這個人的,其他都可能有重複,所以,身份證號是主鍵。
2.外來鍵用於與另一張表的關聯。是能確定另一張表記錄的字段,用於保持資料的一致性。
比如,a表中的乙個字段,是b表的主鍵,那他就可以是a表的外來鍵。
二、 主鍵、外來鍵和索引的區別
主鍵外來鍵
索引定義:
唯一標識一條記錄,不能有重複的,不允許為空
表的外來鍵是另一表的主鍵, 外來鍵可以有重複的, 可以是空值
該欄位沒有重複值,但可以有乙個空值
作用:用來保證資料完整性
用來和其他表建立聯絡用的
是提高查詢排序的速度
個數:主鍵只能有乙個
乙個表可以有多個外來鍵
乙個表可以有多個惟一索引
聚集索引和非聚集索引的區別?
聚集索引一定是唯一索引。但唯一索引不一定是聚集索引。
聚集索引,在索引頁裡直接存放資料,而非聚集索引在索引頁裡存放的是索引,這些索引指向專門的資料頁的資料。
資料庫 主鍵與外來鍵
主鍵的特點 非空 唯一 被引用 外來鍵 操作主鍵的四種種方法 1 建立表時指定主鍵 create table 表名 列名 型別 primary key 2 在後面新增 create table 表名 列名 型別,primary key 列名 3 在表建立後新增主鍵 alter table 表名 ad...
資料庫的主鍵與外來鍵
一 主鍵 主關鍵字 primary key 是表中的乙個或多個字段,它的值用於唯一地標識表中的某一條記錄。在兩個表的關係中,主關鍵字用來 在乙個表中引用來自於另乙個表中的特定記錄。主關鍵字是一種唯一關鍵字,表定義的一部分。乙個表不能有多個主關鍵字,並且 關鍵字的列不能包含空值。1 乙個表中只能有乙個...
資料庫的主鍵與外來鍵
主鍵和外來鍵是把多個表組織為乙個有效的關聯式資料庫的粘合劑。主鍵和外來鍵的設計對物理資料庫的效能和可用性都有著決定性的影響。必須將資料庫模式從理論上的邏輯設計轉換為實際的物理設計。而主鍵和外來鍵的結構是這個設計過程的癥結所在。一旦將所設計的資料庫用於了生產環境,就很難對這些鍵進行修改,所以在開發階段...