外來鍵解釋道
外來鍵約束通過強制一個表中的值必須與另一個表中的值匹配來確保資料完整性。
需要外來鍵的示例是:在大學中,課程必須屬於某個部門。此方案的程式碼是:
CREATE TABLE Department (
Dept_Code CHAR (5) PRIMARY KEY,
Dept_Name VARCHAR (20) UNIQUE
);
使用以下語句插入值:
INSERT INTO Department VALUES ('CS205', 'Computer Science');
下表將包含電腦科學分支提供的科目資訊:
CREATE TABLE Programming_Courses (
Dept_Code CHAR(5),
Prg_Code CHAR(9) PRIMARY KEY,
Prg_Name VARCHAR (50) UNIQUE,
FOREIGN KEY (Dept_Code) References Department(Dept_Code)
);
(外來鍵的資料型別必須與引用鍵的資料型別匹配。)
列 Dept_Code
上的外來鍵約束僅在它們已存在於引用表 Department
中時才允許使用值。這意味著如果你嘗試插入以下值:
INSERT INTO Programming_Courses Values ('CS300', 'FDB-DB001', 'Database Systems');
資料庫將引發外來鍵違規錯誤,因為 Department
表中不存在 CS300
。但是,當你嘗試存在的鍵值時:
INSERT INTO Programming_Courses VALUES ('CS205', 'FDB-DB001', 'Database Systems');
INSERT INTO Programming_Courses VALUES ('CS205', 'DB2-DB002', 'Database Systems II');
然後資料庫允許這些值。
一些使用外來鍵的提示
- 外來鍵必須引用父表中的 UNIQUE(或 PRIMARY)鍵。
- 在外來鍵列中輸入 NULL 值不會引發錯誤。
- 外來鍵約束可以引用同一資料庫中的表。
- 外來鍵約束可以引用同一表中的另一列(自引用)。