SQL 程式札記 : 限制與約束(Constraints)

2023/12/21閱讀時間約 3 分鐘

本文將介紹幾種常見的 SQL 約束,包括主鍵(PRIMARY KEY)、外鍵(FOREIGN KEY)、唯一(UNIQUE)、非空(NOT NULL)和檢查(CHECK)約束,接下來將透過範例程式碼來帶你了解這些約束的使用方式。

主鍵約束(PRIMARY KEY)

主鍵約束用於在表中唯一標識每條記錄,一個表中只能有一個主鍵,主鍵列不能有重複的值,也不能有 NULL 值。

CREATE TABLE Students (
ID int NOT NULL,
Name varchar(255) NOT NULL,
Age int,
PRIMARY KEY (ID)
);

在這個範例中,ID 列被設定為主鍵,意味著每個學生的 ID 必須是唯一的。

外鍵約束(FOREIGN KEY)

外鍵約束用於在兩個表之間建立關聯,透過外鍵,我們可以確保一個表中的值必須在另一個表的列中有對應的值。

CREATE TABLE Classes (
ClassID int NOT NULL,
ClassName varchar(255),
PRIMARY KEY (ClassID)
);

CREATE TABLE Students (
ID int NOT NULL,
Name varchar(255) NOT NULL,
Age int,
ClassID int,
PRIMARY KEY (ID),
FOREIGN KEY (ClassID) REFERENCES Classes(ClassID)
);

在這個例子中,Students 表的 ClassID 列是外鍵,它參考了 Classes 表的 ClassID 列。

唯一約束(UNIQUE)

唯一約束保證了表中的所有值都是唯一的,這不同於主鍵,一個表可以有多個唯一約束。

CREATE TABLE Employees (
EmployeeID int NOT NULL,
Email varchar(255),
UNIQUE (Email)
);

在這裡,Email 列具有唯一約束,這表示不能有重複的電子郵件地址出現在 Employees 表中。

非空約束(NOT NULL)

非空約束確保列中的值不能為 NULL。

CREATE TABLE Products (
ProductID int NOT NULL,
ProductName varchar(255) NOT NULL
);

在這個範例中,ProductIDProductName 列都設定了非空約束。

檢查約束(CHECK)

檢查約束用於確保列中的值滿足特定條件。

CREATE TABLE Products (
ProductID int NOT NULL,
ProductName varchar(255) NOT NULL,
Price decimal NOT NULL,
CHECK (Price > 0)
);

在這個例子中,Price 列有一個檢查約束,確保價格必須大於 0。


😊 感謝你的耐心閱讀,若是你喜歡這篇內容,可以透過以下方式表達你的喜歡 😊

❤️按個愛心|💬留言互動|🔗分享此文|📌追蹤阿梧|☕請喝咖啡

51會員
82內容數
「梧笙」即「吾生」,意即我的生命,朋友都叫我「阿梧(Awu)」,高雄人。我喜歡學習新技能,從程式設計到網路工具,再到社群經營和影片剪輯。日常興趣是打遊戲、看動漫、讀小說和聽音樂。我會把這些興趣寫成文章,如果你有任何想法或問題,歡迎來信到我的郵箱 [email protected]
留言0
查看全部
發表第一個留言支持創作者!