在MySQL數(shù)據(jù)庫中,完整性約束是用來保證數(shù)據(jù)的正確性和一致性的重要手段。通過定義完整性約束,可以限制表中數(shù)據(jù)的取值范圍,確保數(shù)據(jù)的正確性和一致性。在MySQL中,一共有以下幾種完整性約束:
1. NOT NULL約束
NOT NULL約束用來確保列中的數(shù)據(jù)不為空。如果一個(gè)列設(shè)置了NOT NULL約束,那么插入或更新數(shù)據(jù)時(shí)不能將該列的值設(shè)置為NULL。
CREATE TABLE users( id INT PRIMARY KEY, name VARCHAR(20) NOT NULL, age INT NOT NULL );
2. UNIQUE約束
UNIQUE約束用來確保每行數(shù)據(jù)的唯一性。如果一個(gè)列設(shè)置了UNIQUE約束,那么在該列中的值必須是唯一的。
CREATE TABLE users( id INT PRIMARY KEY, email VARCHAR(255) UNIQUE, name VARCHAR(20) );
3. PRIMARY KEY約束
PRIMARY KEY約束用來定義表中的主鍵。一個(gè)表只能有一個(gè)主鍵,主鍵必須唯一且不能為空值。
CREATE TABLE users( id INT PRIMARY KEY, email VARCHAR(255), name VARCHAR(20) );
4. FOREIGN KEY約束
FOREIGN KEY約束用來確保兩個(gè)表之間的數(shù)據(jù)一致性。通過定義FOREIGN KEY約束,可以將一個(gè)表中的列鏈接到另一個(gè)表中的列。
CREATE TABLE orders( id INT PRIMARY KEY, user_id INT, FOREIGN KEY (user_id) REFERENCES users(id) );
上述代碼中的FOREIGN KEY約束將orders表中的user_id列鏈接到users表中的id列上。