標籤:
SQL 約束 用於限制加入表的資料類型。
注意:可以通過在建立表時規定約束(通過CREATE TABLE 語句),或者在表建立之後也可以通過(ALTER TABLE 語句)。
主要的約束有以下幾點:
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CHECK
- DEFAULT
1>NOT NULL
SQL NOT NULL 約束用於強制列不接受 NULL 值
例如,在建立一個Person表中,設定ID_P這一列的資料不接受空值,這意味著,如果不為該欄位添加值,那麼將無法插入和更新該列的記錄,代碼如下:
CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255))
2>UNIQUE
SQL UNIQUE 約束,用於約束該唯一標識資料庫表中的每條記錄。
例如,在Persons 表中,規定ID_P這一列的資料為不重複的int型資料,代碼如下:
CREATE TABLE Persons(Id_P int NOT NULL UNIQUE,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255))
那麼意味著ID_P這一列的資料不可為空值,並且都是唯一標識。
3>PRIMARY KEY
PRIMARY KEY 約束唯一標識資料庫表中的每條記錄.
注意:
主鍵必須包含唯一的值.
主鍵列不能包含 NULL 值.
每個表都應該有一個主鍵,並且每個表只能有一個主鍵.
例如,在Persons表中,設定ID_P為主鍵,那麼ID_P將作為每條記錄的唯一標識,代碼如下:
CREATE TABLE Persons(Id_P int NOT NULL PRIMARY KEY,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255))
4>FOREIGN KEY
一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY。
FOREIGN KEY 也被稱之為外鍵,讓我們用一個例子來說明主鍵和外鍵的關係。
請看兩個表:
注意:
"Orders" 中的 "Id_P" 列指向 "Persons" 表中的 "Id_P" 列。
"Persons" 表中的 "Id_P" 列是 "Persons" 表中的 PRIMARY KEY。
"Orders" 表中的 "Id_P" 列是 "Orders" 表中的 FOREIGN KEY。
FOREIGN KEY 約束用於預防破壞表之間串連的動作。
FOREIGN KEY 約束也能防止非法資料插入外鍵列,因為它必須是它指向的那個表中的值之一。
範例程式碼:
CREATE TABLE Orders(Id_O int NOT NULL PRIMARY KEY,OrderNo int NOT NULL,Id_P int FOREIGN KEY REFERENCES Persons(Id_P))
Sql Server 資料庫教程四 、資料類型約束