主鍵和外來鍵舉例 資料庫 主鍵和外來鍵及其約束

2021-10-17 05:11:43 字數 1058 閱讀 2717

1:什麼是主鍵

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

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

2:什麼是外來鍵?

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

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

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

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

資料庫的三種約束

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

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

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

主鍵和外來鍵

主鍵和外來鍵是把多個表組織為乙個有效的關聯式資料庫的粘合劑。主鍵和外來鍵的設計對物理資料庫的效能和可用性都有著決定性的影響。必須將資料庫模式從理論上的邏輯設計轉換為實際的物理設計。而主鍵和外來鍵的結構是這個設計過程的癥結所在。一旦將所設計的資料庫用於了生產環境,就很難對這些鍵進行修改,所以在開發階段...

主鍵和外來鍵

主鍵的存在就代表著表結構的完整性,表的記錄必須得有唯一區分的字段,主鍵主要是用於其他表的外來鍵關聯,本記錄的修改與刪除,當我們沒有主鍵時,這些操作會變的非常麻煩。我強調主鍵不應該具有實際的意義,這可能對於一些朋友來說不太認同,比如訂單表吧,會有 訂單編號 字段,而這個欄位呢在業務實際中本身就是應該具...

主鍵和外來鍵

關係型資料庫中的某乙個屬性組能唯一標識一條記錄,該屬性組就可以成為乙個主鍵 主鍵只能有乙個,不能有重複的,不允許為空,用來保證資料完整性 外來鍵用於與另一張表的關聯。是能確定另一張表記錄的字段,用於保持資料的一致性。表的外來鍵是另一表的主鍵,外來鍵可以有重複的,可以是空值。用來和其他表建立聯絡用的 ...