在使用一個功能時,我們會接觸到不懂的概念,概念之所以被定義是為了將小的問題封裝,專注更復(fù)雜的問題,數(shù)據(jù)完整性就是數(shù)據(jù)庫中的一個概念,了解了它,有利于我們繼續(xù)學(xué)習(xí),去解決更復(fù)雜的問題
一.實體完整性

1.1.實體完整性(行的完整性)
- 一行數(shù)據(jù)是否完整, 如果多條數(shù)據(jù)相同, 無法區(qū)分, 我們稱之為實體不完整
name score
lnj 100
lnj 100
- 添加主鍵約束
id name score
1 lnj 100
2 lnj 100
- 添加唯一鍵約束
name score
lnj 100
zq 100
- 自動增長列
id name score
1 lnj 100
2 lnj 100
By 極客江南
二.域完整性

1.2.域完整性(列完整性)
某一列數(shù)據(jù)是否完整, 如果出現(xiàn)null, 不匹配的數(shù)據(jù) 都表示不完整
id name score
1 lnj 100
2 zq null
2 zq tyt
- 數(shù)據(jù)類型約束
id name score
1 lnj 100
2 zq null
2 zq 0
- 非空約束
id name score
1 lnj 100
2 zq 0
2 zq 0
- 默認值約束
id name score
1 lnj 100
2 zq 59.5
2 zq 0
By 極客江南
三.引用完整性

1.3.引用完整性
- 默認情況下多張表之間是沒有任何關(guān)系的, 所以給A表可以隨意插入數(shù)據(jù), 給B表也可以隨意插入數(shù)據(jù)
- 例如有一張學(xué)生表和一張成績表, 要求成績表中保存的必須是學(xué)生表中每個學(xué)生的成績
+ 學(xué)生表
+ id name
+ 1 lnj
+ 2 zq
+ 成績表
+ id stuid score
+ 1 1 100
+ 2 3 99
+ 3 2 86
- 可以通過外鍵約束添加表與表之間的關(guān)系,告訴MySQL在插入數(shù)據(jù)的時候, 檢查是否存在依賴的數(shù)據(jù), 存在才可以插入...
By 極客江南