SQL Constraint 教學
🧭 簡介
Constraint(約束條件) 是 SQL 中用來限制資料表中欄位可接受值的規則,用以確保資料的完整性(integrity)與一致性(consistency)。
常見的 Constraint 包括:
Constraint
功能說明
PRIMARY KEY
唯一標識每一筆資料,不可重複、不可為 NULL
FOREIGN KEY
建立兩個表格之間的關聯關係
UNIQUE
欄位值不可重複,但可為 NULL
NOT NULL
欄位不可為 NULL(必須有值)
CHECK
限制欄位值必須符合指定條件
DEFAULT
指定欄位的預設值
🔑 PRIMARY KEY
唯一標識資料列,每個表只能有一個主鍵。
CREATE TABLE employees (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
department TEXT
);主鍵也可以設定在多個欄位上(複合主鍵):
🔗 FOREIGN KEY
用來建立兩張表格間的參照關係(referential integrity)。
如果刪除或修改被參照的紀錄,可設定相應動作:
動作
說明
CASCADE
同步刪除或更新子表資料
SET NULL
被參照資料刪除時設為 NULL
NO ACTION / RESTRICT
拒絕操作,維持完整性
🚫 UNIQUE
確保欄位值不重複。
可在多個欄位組合上使用:
⚠️ NOT NULL
要求欄位必須有值。
🧩 CHECK
限制欄位必須符合條件。
也可同時檢查多個欄位:
🎯 DEFAULT
指定欄位的預設值。
插入資料時若未指定該欄位,會自動使用預設值。
🧱 ALTER TABLE 新增或移除 Constraint
新增 Constraint
刪除 Constraint
不同資料庫系統語法略有不同:
🧠 總結
Constraint 是維護資料正確性的重要機制。合理運用 PRIMARY KEY、FOREIGN KEY、UNIQUE、NOT NULL、CHECK 與 DEFAULT,可大幅減少資料錯誤與冗餘,並強化資料庫的可靠性。
Last updated