Оператор SQL FOREIGN KEY (Внешний ключ) служит для указания в одной таблице на Первичный ключ (оператор SQL PRIMARY KEY) в другой.
Оператор SQL FOREIGN KEY имеет следующий синтаксис:
Для MySQL:
CREATE TABLE table_1 ( ID_1 int NOT NULL ID_2 int PRIMARY KEY (ID_1) FOREIGN KEY (ID_2) REFERENCES table_2(ID_2) )
Для MS SQL Server, Oracle, MS Access:
CREATE TABLE table_1 ( ID_1 int NOT NULL PRIMARY KEY ID_2 int FOREIGN KEY REFERENCES table_2(ID_2) )
Примеры оператора SQL FOREIGN KEY. Имеются две таблицы:
Authors — содержит в себе информацию об авторах книг:
AuthorID | AuthorName |
1 | Bruce Eckel |
2 | Robert Lafore |
3 | Andrew Tanenbaum |
Books — содержит в себе информацию о названии книг:
BookID | BookName |
3 | Modern Operating System |
2 | Object-Oriented Programming in C++ |
1 | Thinking in Java |
3 | Computer Architecture |
В таблице Books поле BookID являются Внешним ключом и ссылаются на таблицу Authors. Для организации таблиц с подобной структурой используется следующий код (для MS SQL Server) с использованием оператора SQL FOREIGN KEY:
CREATE TABLE Authors ( AuthorID int NOT NULL PRIMARY KEY, AuthorName varchar(50) ) CREATE TABLE Books ( BookID int FOREIGN KEY REFERENCES Authors(AuthorID), BookName varchar(100) )