MySQL完整性語言

2022-07-17 04:00:12 字數 2445 閱讀 5081

完整性語言實驗包含3個實驗專案,其中2個必修專案,1個選修專案。該實驗的各個實驗專案均為驗證型實驗專案。本次實驗我選擇的是實驗3.1和實驗3.3。

(1)實驗目的

掌握實體完整性的定義和維護方法。

(2)實驗內容和要求

定義實體完整性,刪除實體完整性。能夠寫出兩種方式定義實體完整性的sql語句:建立表時定義實體完整性、建立表後定義實體完整性。設計sql語句驗證完整性約束是否起作用。

(3)實驗重點和難點

實驗重點:建立表時定義實體完整性。

實驗難點:有多個候選碼時實體完整性的定義。

1)        建立表時定義實體完整性(列級實體完整性),以建立department,dept_name為主碼,定義department的實體完整性,藍色那行定義了dept_name同時宣告其為主碼。

2)        建立表時定義實體完整性(表級實體完整性),同樣以建立department,dept_name為主碼,定義department的實體完整性,藍色那行在表級層次上給出了實體完整性。

3)        建立表後定義實體完整性,以department為例,先建立department,不宣告主碼,之後在藍色那兩行在建立表後定義了department中的dept_name屬性為主碼。

4)        定義實體完整性(主碼由多個屬性組成),以建立classroom表為例

5)        有多個候選碼時定義實體完整性,以建立instructor表為例,其中name,salary,dept_name和id均為候選碼,選擇id作為主碼,name限制為非空,salary檢查工資是否超過29000,dept_name外來鍵引用department的主碼。

6)        刪除實體完整性,刪除instructor的主碼

刪除前:

刪除後:

可明顯看出主碼已經刪除。

7)        增加兩條主碼相同的記錄,驗證實體完整性是否起作用,以department為例,插入兩條主碼相同的記錄可以看到會違反實體完整性約束。

(1)實驗目的

掌握使用者自定義完整性的定義和維護方法。

(2)實驗內容和要求

針對具體應用語義,選擇null/not null、default,unique、check等,定義屬性上的約束條件。

(3)實驗重點和難點

實驗重點:null/not null, default。

實驗難點:check。

1)      定義屬性null/not null約束

定義student表上的id和name的not null屬性。

2)      定義屬性default約束

定義student表中的tot_cred學分預設屬性值為0,表示學生初始學分為0

3)      定義屬性unique約束

定義nation表中name屬性必須唯一的完整性約束,表示國家名字不能一樣。

4)      使用check

使用check定義instructor表中salary應該滿足的約束。

5)      插入instructor的一條記錄驗證是否違反not null約束

執行此語句會報錯:

21:47:18  insert into instructor  values('66666',null,'new_department',88888)

error code: 1048. column 'name' cannot be null

故可以看到完整性約束只有在被滿足時才可以進行的操作才能被允許。

MySQL資料完整性(實體完整性 域完整性)

資料完整性 為保證插入到資料庫中的資料是正確的,防止使用者輸入錯誤的資料 分為實體完整性 域完整性 參照完整性 下節再說 1 實體完整性 實體指的是表中的一行,一行記錄對應乙個實體 通過主鍵實現 主鍵 關鍵字 primary key 特點 不能為null,並且唯一。邏輯主鍵 推薦 例如id,不代表實...

mysql 完整性 詳解MySQL 資料完整性

資料完整性分為 實體完整性,域完整性,參考完整性。參照完整性指的就是多表之間的設計,主要使用外來鍵約束。多表設計 一對多 多對多 一對一設計 一 實體 行 完整性 實體完整性通過表的主鍵來實現。使用主鍵來表示一條記錄的唯一,且不為空 語法 primary key 主鍵分類 邏輯主鍵 例如id,不代表...

mysql 域完整性 Mysql之資料完整性約束

mysql之ddl操作 四 資料完整性約束 實體完整性 域完整性 引用完整性 自定義完整性 1 實體完整性 主鍵約束 唯一約束 主鍵自增 1 主鍵約束 特點 唯一的,不能為空 關鍵字 primary key 新增約束語法 alter table 表名 add constraint 約束名 prima...