本文將介紹幾種常見的 SQL 約束,包括主鍵(PRIMARY KEY)、外鍵(FOREIGN KEY)、唯一(UNIQUE)、非空(NOT NULL)和檢查(CHECK)約束,接下來將透過範例程式碼來帶你了解這些約束的使用方式。
主鍵約束用於在表中唯一標識每條記錄,一個表中只能有一個主鍵,主鍵列不能有重複的值,也不能有 NULL 值。
CREATE TABLE Students (
ID int NOT NULL,
Name varchar(255) NOT NULL,
Age int,
PRIMARY KEY (ID)
);
在這個範例中,ID
列被設定為主鍵,意味著每個學生的 ID 必須是唯一的。
外鍵約束用於在兩個表之間建立關聯,透過外鍵,我們可以確保一個表中的值必須在另一個表的列中有對應的值。
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
列。
唯一約束保證了表中的所有值都是唯一的,這不同於主鍵,一個表可以有多個唯一約束。
CREATE TABLE Employees (
EmployeeID int NOT NULL,
Email varchar(255),
UNIQUE (Email)
);
在這裡,Email
列具有唯一約束,這表示不能有重複的電子郵件地址出現在 Employees
表中。
非空約束確保列中的值不能為 NULL。
CREATE TABLE Products (
ProductID int NOT NULL,
ProductName varchar(255) NOT NULL
);
在這個範例中,ProductID
和 ProductName
列都設定了非空約束。
檢查約束用於確保列中的值滿足特定條件。
CREATE TABLE Products (
ProductID int NOT NULL,
ProductName varchar(255) NOT NULL,
Price decimal NOT NULL,
CHECK (Price > 0)
);
在這個例子中,Price
列有一個檢查約束,確保價格必須大於 0。
😊 感謝你的耐心閱讀,若是你喜歡這篇內容,可以透過以下方式表達你的喜歡 😊