SQL主鍵約束和外鍵約束,sql主鍵約束
主鍵約束SQL PRIMARY KEY 約束
PRIMARY KEY 約束唯一標識資料庫表中的每條記錄。
主鍵必須包含唯一的值。
主鍵列不能包含 NULL 值。
每個表都應該有一個主鍵,並且每個表只能有一個主鍵。
CREATE TABLE 時的 SQL PRIMARY KEY 約束
下面的 SQL 在 “Persons” 表建立時在 “P_Id” 列上建立 PRIMARY KEY 約束:
MySQL:
CREATE TABLE Persons(P_Id int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),PRIMARY KEY (P_Id))
SQL Server / Oracle / MS Access:
CREATE TABLE Persons(P_Id int NOT NULL PRIMARY KEY,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255))
多個主鍵約束
如需命名 PRIMARY KEY 約束,並定義多個列的 PRIMARY KEY 約束,請使用下面的 SQL 文法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons(P_Id int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName))
注釋:在上面的執行個體中,只有一個主鍵 PRIMARY KEY(pk_PersonID)。然而,pk_PersonID 的值是由兩個列(P_Id 和 LastName)組成的。
外鍵約束SQL FOREIGN KEY 約束
一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY。
讓我們通過一個執行個體來解釋外鍵。請看下面兩個表:
“Persons” 表:
“Orders” 表:
請注意,”Orders” 表中的 “P_Id” 列指向 “Persons” 表中的 “P_Id” 列。
“Persons” 表中的 “P_Id” 列是 “Persons” 表中的 PRIMARY KEY。
“Orders” 表中的 “P_Id” 列是 “Orders” 表中的 FOREIGN KEY。
FOREIGN KEY 約束用於預防破壞表之間串連的行為。
FOREIGN KEY 約束也能防止非法資料插入外鍵列,因為它必須是它指向的那個表中的值之一。
CREATE TABLE 時的 SQL FOREIGN KEY 約束
下面的 SQL 在 “Orders” 表建立時在 “P_Id” 列上建立 FOREIGN KEY 約束:
MySQL:
CREATE TABLE Orders(O_Id int NOT NULL,OrderNo int NOT NULL,P_Id int,PRIMARY KEY (O_Id),FOREIGN KEY (P_Id) REFERENCES Persons(P_Id))
SQL Server / Oracle / MS Access:
CREATE TABLE Orders(O_Id int NOT NULL PRIMARY KEY,OrderNo int NOT NULL,P_Id int FOREIGN KEY REFERENCES Persons(P_Id))
定義多個外鍵
如需命名 FOREIGN KEY 約束,並定義多個列的 FOREIGN KEY 約束,請使用下面的 SQL 文法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders(O_Id int NOT NULL,OrderNo int NOT NULL,P_Id int,PRIMARY KEY (O_Id),CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)REFERENCES Persons(P_Id))
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。 http://blog.csdn.net/yan3013216087/article/details/79082558