MySQL是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),可以使用各種方式來約束數(shù)據(jù)庫中數(shù)據(jù)的正確性和完整性。在MySQL中,我們可以使用以下幾種約束類型:
主鍵約束:每個(gè)表只能有一個(gè)主鍵,并且約束的字段值必須是唯一的,不能為NULL。主鍵可以用于關(guān)聯(lián)到其他表的外鍵。
CREATE TABLE userinfo (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT NOT NULL
);
唯一約束:約束的字段值必須是唯一的,可以為NULL。一個(gè)表可以有多個(gè)唯一約束。
CREATE TABLE userinfo (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(50) UNIQUE
);
外鍵約束:用于關(guān)聯(lián)到其他表的主鍵。外鍵約束可以保證數(shù)據(jù)庫中的數(shù)據(jù)完整性,當(dāng)其中一張表的記錄被刪除或更新時(shí),另一張表的記錄也將被相應(yīng)操作。
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL
);
CREATE TABLE orders (
id INT PRIMARY KEY,
user_id INT,
order_amount INT,
FOREIGN KEY (user_id) REFERENCES users(id)
);
檢查約束:可以在插入或更新數(shù)據(jù)時(shí)檢查數(shù)據(jù)的正確性,并指定數(shù)據(jù)必須符合的條件。
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
salary DECIMAL(10,2) NOT NULL,
CONSTRAINT salary_check CHECK (salary >= 5000.0)
);
使用MySQL的約束功能可以大大提高數(shù)據(jù)的正確性和完整性,避免無效或不合法的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫中。
上一篇MySQL約束條件男或女
下一篇mysql約束沒有約束