数据库-主键和外键及其约束
1:什么是主鍵?
在一張表中,用來唯一標識一條記錄的字段集,叫做主關鍵字或者主關鍵碼,簡稱主鍵(或主碼),這里說"字段集"是因為主鍵可能用一個字段或者多個字段來表示。舉例來看:
學生表(學號, 姓名, 性別,專業(yè)編號),這里學號是主鍵,一個學號id就可以唯一標識一個學生的信息。另一個表:學生選課表(學號, 課程號, 成績),這里(學號, 課程號)是主鍵,因為一個學號(即一個學生)可以選擇多門課程,一個課程號(即一個課程)可以被多個學生選擇,無法用一個字段來標識一條學生選課的信息記錄,而使用(學號, 課程號)這兩個字段作為關鍵字就可以唯一標識學生的選課信息。
2:什么是外鍵?
一張表的非主屬性是另一個表的主屬性就是這個表的外鍵。這里有兩個分別為:?學生表(學號, 姓名, 性別,專業(yè)編號),專業(yè)信息表(專業(yè)編號,專業(yè)名稱,專業(yè)備注信息)。學生表中主鍵是學號,專業(yè)信息表中主鍵是專業(yè)編號。學生表中的非主屬性專業(yè)編號恰好是專業(yè)信息表中的主鍵。我們就稱這個專業(yè)編號是學生表的外鍵。像這樣,一個表的非主屬性是另一個表的主屬性,該非主屬性就是外鍵。
概念定義:什么是父表和子表?
有兩張表A表和B表,表A中的一個字段id是外鍵,表B中的一個字段id是主鍵,那么稱B為父表,A為子表。就是說一個表中外鍵字段(相當于這里的A表)是另一個表中(相當于這里的B表)的主鍵。?還是上面的兩個表來舉例理解:學生表(學號, 姓名, 性別,專業(yè)編號),專業(yè)信息表(專業(yè)編號,專業(yè)名稱,專業(yè)備注信息)。這里學生表是子表,專業(yè)信息表是父表。
設置表的外鍵的作用在于建立與父表的聯系,比如在專業(yè)信息表中某個專業(yè)編號的id為'1001',刪除這個id后,則學生表中的專業(yè)編號id為'1001'的記錄也隨著刪除,這樣做的目的在于保證表的完整性。
數據庫的三種約束
1.實體完整性約束指的是主鍵不能為空,如果主鍵為空了還怎么唯一標識一條記錄。2.參照完整性約束,即外鍵的約束,某一外鍵的值必須在它引用的主鍵字段中存在。如,學生表中專業(yè)編號屬性的值,必須都存于專業(yè)信息表中的專業(yè)編號屬性中。想一想也就明白了,一個學生(大學生)怎么可能屬于一個不存在的專業(yè)。
3.用戶自定義完整性約束,指的是一些用戶自己設定的約束,例如字段是否可以為空,字段值的取值范圍(如:人的性別只能取男、女)。
轉載于:https://www.cnblogs.com/myseries/p/5222659.html
總結
以上是生活随笔為你收集整理的数据库-主键和外键及其约束的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Xcode 修改系统的代码块样式 Cod
- 下一篇: 阿里云使用笔记-MySQL远程连接-ce