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