資料庫 主鍵 外來鍵

2021-08-11 06:20:40 字數 1059 閱讀 3821

1:什麼是主鍵 

在一張表中,用來唯一標識一條記錄的字段集,叫做主關鍵字或者主關鍵碼,簡稱主鍵(或主碼),這裡說"欄位集"是因為主鍵可能用乙個字段或者多個欄位來表示。舉例來看:

學生表(學號, 姓名, 性別,專業編號),這裡學號是主鍵,乙個學號id就可以唯一標識乙個學生的資訊。另乙個表:學生選課表(學號, 課程號, 成績),這裡(學號, 課程號)是主鍵,因為乙個學號(即乙個學生)可以選擇多門課程,乙個課程號(即乙個課程)可以被多個學生選擇,無法用乙個欄位來標識一條學生選課的資訊記錄,而使用(學號, 課程號)這兩個字段作為關鍵字就可以唯一標識學生的選課資訊。

2:什麼是外來鍵?

一張表的非主屬性是另乙個表的主屬性就是這個表的外來鍵。這裡有兩個分別為: 學生表(學號, 姓名, 性別,專業編號),專業資訊表(專業編號,專業名稱,專業備註資訊)。學生表中主鍵是學號,專業資訊表中主鍵是專業編號。學生表中的非主屬性專業編號恰好是專業資訊表中的主鍵。我們就稱這個專業編號是學生表的外來鍵。像這樣,乙個表的非主屬性是另乙個表的主屬性,該非主屬性就是外來鍵。

概念定義:什麼是父表和子表?

有兩張表a表和b表,表a中的乙個欄位id是外來鍵,表b中的乙個欄位id是主鍵,那麼稱b為父表,a為子表。就是說乙個表中外鍵欄位(相當於這裡的a表)是另乙個表中(相當於這裡的b表)的主鍵。 還是上面的兩個表來舉例理解:學生表(學號, 姓名, 性別,專業編號),專業資訊表(專業編號,專業名稱,專業備註資訊)。這裡學生表是子表,專業資訊表是父表。

設定表的外來鍵的作用在於建立與父表的聯絡,比如在專業資訊表中某個專業編號的id為'1001',刪除這個id後,則學生表中的專業編號id為'1001'的記錄也隨著刪除,這樣做的目的在於保證表的完整性。

資料庫的三種約束

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

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

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

資料庫外來鍵主鍵

如果乙個欄位被設定為主鍵,那他一定是唯一的,並且是非空的。如果設定為整型,那麼可以新增為自動遞增的功能 外來鍵,應用於主從表。可以保證當前新增的字段在一定範圍內選擇。比如我有兩張表,乙個表是班級表,乙個表是學生表,我需要知道學生在哪乙個班級以及他的位置,我當然可以在班級表中寫好幾個列,但是顯得臃腫,...

資料庫主鍵外來鍵區別

從資料庫是主資料庫的備份,當主資料庫變化時從資料庫要更新,這些資料庫軟體可以設計更新週期。這是提高資訊保安的手段。主從資料庫伺服器不在乙個地理位置上,當發生意外時資料庫可以儲存。主外來鍵的關係結構 1,一對一,不用引用主外來鍵,把它們放乙個表中即可 例如 乙個學生只能有乙個卡號,那麼學生跟卡號放在乙...

資料庫 主鍵與外來鍵

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