MySQL是一款常用的關系型數據庫,具有多種數據約束方式,以保證數據的完整性和一致性。這里我們將詳解MySQL的六大約束。
1. NOT NULL
NOT NULL是MySQL中最基礎的約束之一,用于保證表中某個字段的值不為空。如果在定義表結構時沒有指定該字段為NOT NULL,則該字段可以為空。
CREATE TABLE example ( id INT NOT NULL, name VARCHAR(50) NOT NULL );
2. UNIQUE
UNIQUE約束用于保證表中某個字段的值唯一,同一個表中不允許出現重復值。如果在定義表結構時沒有指定該字段為UNIQUE,則該字段可以存在重復值。
CREATE TABLE example ( id INT NOT NULL, name VARCHAR(50) UNIQUE );
3. PRIMARY KEY
PRIMARY KEY約束用于標識表中某個字段為主鍵,該字段的值唯一。一張表中只能有一個主鍵,用于唯一地標識一條記錄。
CREATE TABLE example ( id INT PRIMARY KEY, name VARCHAR(50) );
4. FOREIGN KEY
FOREIGN KEY約束用于在表與表之間建立關聯關系,保證數據的一致性。外鍵約束可以指向另一個表的主鍵或唯一字段,在插入數據時必須保證此外鍵存在于關聯的表中。
CREATE TABLE orders ( id INT PRIMARY KEY, user_id INT NOT NULL, FOREIGN KEY (user_id) REFERENCES users(id) ); CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL );
5. CHECK
CHECK約束用于在插入或更新數據時對字段值進行限制。可以使用MySQL中的邏輯表達式對字段值進行驗證,通過時允許插入或更新,否則拒絕操作。
CREATE TABLE example ( id INT PRIMARY KEY, age INT CHECK (age >= 18) );
6. DEFAULT
DEFAULT約束用于指定某個字段的默認值。如果在插入或更新數據時沒有為該字段指定值,則使用默認值。
CREATE TABLE example ( id INT PRIMARY KEY, name VARCHAR(50) DEFAULT 'Unknown' );
以上為六種MySQL約束的詳細解析,它們能夠保證數據的完整性和一致性。在實際的開發中,應該根據需要靈活地使用各種約束方式。