SQL 外來鍵 (FOREIGN KEY)
外來鍵(FOREIGN KEY)為一個表中的 FOREIGN KEY指向另一個表中的Primary Key。
透過下列表格了解外來鍵使用: 從CUSTOMER 表格中記錄了所有客戶資料,另一個ORDERS 表格紀錄了所有客戶訂單資料。如果要透過ORDERS得知客戶其他資料,
在這我們就會透過 ORDERS 表格中設定一個外來鍵,而這個外來鍵就指向 CUSTOMER 主鍵。
"ORDERS" 中的 "CustomerID" 列指向 "CUSTOMER" 表中的 CustomerID" 列。
"CUSTOMER" 表中的 "CustomerID" 列是 "CUSTOMER" 表中的 PRIMARY KEY。
"ORDERS" 表中的 "CustomerID" 列是 "ORDERS" 表中的 FOREIGN KEY。
CUSTOMER 表格
CustomerID |
CustomerName |
1 |
Maria Anders |
2 |
Ana Trujillo |
3 |
Antonio Moreno |
ORDERS 表格
OrderID |
CustomerID |
OrderDate |
1001 |
1 |
1999-10-10 |
1002 |
2 |
1999-11-11 |
假設我們使用 CREATE TABLE 建立主鍵與外來鍵
MySQL:
CREATE TABLE
ORDERS (
OrderID integer,
OrderDate date,
CustomerID integer,
PRIMARY KEY (OrderID),
FOREIGN KEY (CustomerID) REFERENCES CUSTOMER (CustomerID));
SQL Server / Oracle :
CREATE TABLE
ORDERS (
OrderID integer PRIMARY KEY,
OrderDate datetime,
CustomerID integer REFERENCES CUSTOMER (CustomerID), Amount double);