資料冗餘:是指資料庫中存在一些重複的資料,注:為了保持資料的完整性,資料庫中是存在一些資料冗餘的
資料完整性:是指『資料庫中的資料能夠正確地反應實際情況』
資料完整性分為四種:
1.實體完整性約束
2.域完整性約束
3.引用完整性約束
4.自定義完整性約束
1.實體完整性:實體完整性要求表中的每一行資料都反映不同的實體,不能才在相同行。
主要實現方法:唯一約束(unique key),主鍵約束(primary key),或者標識列約束(自動增長列)
唯一約束:唯一約束保證在乙個字段或者一組欄位裡的資料與表中其它行的資料相比是唯一的。
主鍵約束:用於強制表的實體完整性。設定主鍵後該列不能出現重複的資料,且不能為空。乙個表中只能有乙個主鍵。
標識列約束:標識列也成為自動增長列,新增資料時不可更改標識列的值!新增資料時它會自動以使用者設定的增量進行增長。標識列只能為int型別
2:域完整性約束:域完整性是指給定義列輸入的有效性,話句話來說就是使用者給該字段設定輸入內容的一塊區域,只能輸入或者匯入符合該區域的內容
主要實現方法:檢查約束(check key),輸入約束,預設值約束(default key),非空約束等多種方法。
檢查約束:用於定義列中可接受的資料值或者格式。例如:email like '%@%',表示該列只接受包含@符的字元。
預設值約束:向列中插入預設值。如果沒有規定其他的值,那麼會將預設值新增到該列中。
非空約束:設定非空約束後就不允許出現null值,未設定是該列是可以出現空值的。
3:引用完整性約束:用來定義表與表之間的關係
主要實現方法:設定主外來鍵。
· 主外來鍵:至少兩個表才能定義引用完整性約束,外來鍵與被引用鍵不必同名稱。
注:當主表中沒有記錄時,子表不能將資料新增 。
主表中的記錄不能直接刪除,必須先刪除子表中的資料後,才能將主表中的資料刪除。
4:自定義約束:用來定義特定的規則
主要實現方法:規則,儲存過程,觸發器
5.唯一約束與主鍵約束的區別:
1.主鍵列設定後是不可以為空的。唯一約束是可以為空的。
2.主鍵列可以用來約束其他外來鍵表,但唯一約束不行。
筆記:2019-1-1
資料的完整性 SQL
第四 資料的完整性 切換資料庫 use master go 如果已存在這個資料庫,則先刪除該資料庫 if exists select from sysdatabases where name dbstudent drop database dbstudent go 建立資料庫 create data...
MySQL資料完整性(實體完整性 域完整性)
資料完整性 為保證插入到資料庫中的資料是正確的,防止使用者輸入錯誤的資料 分為實體完整性 域完整性 參照完整性 下節再說 1 實體完整性 實體指的是表中的一行,一行記錄對應乙個實體 通過主鍵實現 主鍵 關鍵字 primary key 特點 不能為null,並且唯一。邏輯主鍵 推薦 例如id,不代表實...
SQL完整性約束
完整性約束保證授權使用者對資料庫所做的修改不會破壞資料的一致性。not null宣告禁止在該屬性上插入空值。任何可能導致向乙個宣告為not null的屬性插入空值的資料都會產生錯誤診斷資訊。unique aj 1 aj 2 aj m unique宣告指出aj 1 aj 2 aj m 形成了乙個候選碼...