實驗3 Mysql 完整性語言

2021-10-02 09:56:04 字數 2440 閱讀 9836

完整性語言實驗包含3個實驗專案,其中2個必修專案,1個選修專案。該實驗的各個實驗專案均為驗證型實驗專案。

實驗3.1 實體完整性實驗

1.實驗目的

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

2.實驗內容和要求

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

3.實驗重點和難點

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

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

4.實驗過程

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

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

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

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

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

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

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

實驗3.3 使用者自定義完整性實驗

1.實驗目的

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

2.實驗內容和要求

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

3.實驗重點和難點

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

實驗難點:check。

4.實驗過程

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

定義stu表上的id和name的not null屬性,如圖,當插入null的時候就無法通過

(2 )定義屬性default約束

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

(3)定義屬性unique約束

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

(4)使用check

使用check定義stu3表中score應該滿足的約束。

MySQL完整性語言

完整性語言實驗包含3個實驗專案,其中2個必修專案,1個選修專案。該實驗的各個實驗專案均為驗證型實驗專案。本次實驗我選擇的是實驗3.1和實驗3.3。1 實驗目的 掌握實體完整性的定義和維護方法。2 實驗內容和要求 定義實體完整性,刪除實體完整性。能夠寫出兩種方式定義實體完整性的sql語句 建立表時定義...

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

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

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

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