MySQL是一種常見的數據庫管理系統,可以用來存儲和管理大規模的數據。MySQL有三種完整性約束,分別是實體完整性、參照完整性和用戶定義的完整性。下面我們將分別介紹這三種完整性。
實體完整性
CREATE TABLE example (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
在實體完整性中,我們通過設置主鍵(PRIMARY KEY)來保證每個記錄的唯一性,如上述代碼所示。PRIMARY KEY約束會自動促使MySQL檢查是否有重復的記錄。如果發現有,則會拒絕插入該記錄。
參照完整性
CREATE TABLE employee (
id INT PRIMARY KEY,
name VARCHAR(50),
department_id INT,
FOREIGN KEY (department_id) REFERENCES department(id)
);
在參照完整性中,我們通過設置外鍵(FOREIGN KEY)和參照完整性條件(REFERENCES)來確保兩個表之間的關系的正確性。如上述代碼所示,employee表中的department_id列參照了department表中的id列。如果我們試圖插入一個department_id值在department表中不存在的記錄,MySQL會拒絕插入該記錄。
用戶定義的完整性
CREATE TABLE example (
id INT,
name CHAR(10) NOT NULL,
age INT CHECK (age >0)
);
在用戶定義的完整性中,我們通過設置CHECK約束來確保某些列的值符合特定的條件。如上述代碼所示,我們確保age列的值大于0,否則MySQL會拒絕插入該記錄。