資料庫中主鍵與外來鍵的理解

2021-08-26 01:48:30 字數 1010 閱讀 9233

資料庫中主鍵與外來鍵的理解

在關係型資料庫中,資料結構有邏輯結構和物理結構。物理結構指儲存在物理介質上的資料檔案的結構。邏輯結構即關係,也就是一張張的二維表。表中的一列即為乙個字段(屬性),代表的是實體的乙個屬性。表中的一行即為一條記錄。如:學生表中(

學號,姓名,年齡,性別),在該表中有4個字段,代表學生實體的4個屬性。表中的一行資料(001,張三,男,20),即一條記錄,表示的是張三這個學生的資訊。

在表中,用來唯一標識一條記錄的字段集,叫做主關鍵字或者主關鍵碼,簡稱主鍵(主碼),而主鍵包含的屬性(字段)叫做主屬性,其他的則為非主屬性。

在這裡說明一下,既然是「欄位集」,那麼主鍵就可能是乙個字段或者多個字段。例如上面的學生表,用下劃線表示的學號,就是能唯一標識乙個學生的字段,學號字段就是該錶的主鍵。由於學生的姓名重名是不可避免的,所以一般不用姓名來作為唯一標識乙個學生的主鍵。

再舉個例子說明一下多個字段作為主鍵。例如學生選課表(學號,課程號,成績),在學生選課表中,主關鍵字是(學號,課程號)。原因顯而易見,乙個學生可以選擇多門課程,乙個課程可以被多個學生選擇。如果單單是用學號或者課程號,都不足以唯一標識一條記錄。

對於外來鍵的理解,在這裡我也舉個例子。假設有兩個表,學生表(學號,姓名,年齡,性別,專業編號),專業資訊表(專業編號,專業名稱,專業備註資訊)。學生表中主鍵是學號,專業資訊表中主鍵是專業編號。學生表中的非主屬性專業編號恰好是專業資訊表中的主鍵。我們就稱這個專業編號是學生表的外來鍵。像這樣,乙個表的非主屬性是另乙個表的主屬性,該非主屬性就是外來鍵。

資料庫的約束有三種,實體完整性約束、參照完整性約束和使用者自定義約束。

1.實體完整性約束指的是主鍵不能為空,如果主鍵為空了還怎麼唯一標識一條記錄。

2.參照完整性約束,即外來鍵的約束,某一外來鍵的值必須在它引用的主鍵欄位中存在。如,學生表中專業編號屬性的值,必須都存於專業資訊表中的專業編號屬性中。想一想也就明白了,乙個學生(大學生)怎麼可能屬於乙個不存在的專業。

3.使用者自定義完整性約束,指的是一些使用者自己設定的約束,例如字段是否可以為空,字段值的取值範圍(如:人的性別只能取男、女)。

Mysql資料庫主鍵與外來鍵理解

mysql資料庫主鍵外來鍵的理解 1 什麼是主鍵 在一張表中,用來唯一標識一條記錄的字段集,叫做主關鍵字或者關鍵碼,簡稱主鍵 2 什麼是外來鍵 一張表的非主屬性是另乙個表的主屬性就是這個表的外來鍵 一張表的非主屬性是另乙個表的主屬性就是這個表的外來鍵。這裡有兩個分別為 學生表 學號,姓名,性別,專業...

資料庫 主鍵與外來鍵

主鍵的特點 非空 唯一 被引用 外來鍵 操作主鍵的四種種方法 1 建立表時指定主鍵 create table 表名 列名 型別 primary key 2 在後面新增 create table 表名 列名 型別,primary key 列名 3 在表建立後新增主鍵 alter table 表名 ad...

資料庫的主鍵與外來鍵

一 主鍵 主關鍵字 primary key 是表中的乙個或多個字段,它的值用於唯一地標識表中的某一條記錄。在兩個表的關係中,主關鍵字用來 在乙個表中引用來自於另乙個表中的特定記錄。主關鍵字是一種唯一關鍵字,表定義的一部分。乙個表不能有多個主關鍵字,並且 關鍵字的列不能包含空值。1 乙個表中只能有乙個...