MySQL是一種常用的關系型數據庫管理系統,它為用戶提供了多種數據類型和約束來保證數據的完整性和安全性。在MySQL中,常見的約束包括以下五種:
1. NOT NULL約束:該約束用于限制字段的值不能為NULL,也就是不能為空。如果該字段為空,則插入或更新操作將被拒絕。例如: CREATE TABLE users ( id INT(11) NOT NULL, name VARCHAR(50) NOT NULL, age INT(3) ); 2. PRIMARY KEY約束:該約束用于指定表中一個或多個列作為主鍵,保證每一行數據的唯一性。一個表只能有一個主鍵,并且主鍵列的值不能為空。例如: CREATE TABLE users ( id INT(11) NOT NULL PRIMARY KEY, name VARCHAR(50), age INT(3) ); 3. UNIQUE約束:該約束用于限制字段的值唯一,但允許為NULL。如果該字段已經存在相同的非NULL值,則插入或更新操作將被拒絕。例如: CREATE TABLE users ( id INT(11) NOT NULL, name VARCHAR(50), email VARCHAR(50) UNIQUE, age INT(3) ); 4. FOREIGN KEY約束:該約束用于指定一列或多列為外鍵,并且約束這些外鍵必須引用另一個表的主鍵。該約束可以保證數據的完整性,避免了不一致的數據記錄。例如: CREATE TABLE orders ( id INT(11) NOT NULL PRIMARY KEY, user_id INT(11) NOT NULL, order_date DATE, FOREIGN KEY (user_id) REFERENCES users(id) ); 5. CHECK約束:該約束允許指定一個條件,該條件必須為真才允許插入或更新操作。例如: CREATE TABLE users ( id INT(11) NOT NULL, name VARCHAR(50), age INT(3), gender ENUM('male', 'female'), CHECK (age >= 0 AND gender IN ('male', 'female')) );