English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQL FOREIGN KEY 关键字の使用方法及び例

SQLキーワードリファレンス

FOREIGN KEY

FOREIGN KEY制約は、テーブルが結合されるための鍵です。

FOREIGN KEYは、テーブル内のフィールド(またはフィールドの集合)であり、別のテーブルのPRIMARY KEYを参照します。

CREATE TABLE上のSQL FOREIGN KEY

テーブル「PersonID」を作成する際、以下のSQLを使用して列にFOREIGN KEY「Orders」を追加します:

MySQL:

CREATE TABLE Orders
(
   
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
   
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);

SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
   
OrderID int NOT NULL PRIMARY KEY,
OrderNumber int NOT NULL,
   
PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);

FOREIGN KEY制約を名前付ける場合、複数の列にFOREIGN KEY制約を定義する場合、以下のSQL文法を使用してください:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
   
OrderID int NOT NULL,
   
OrderNumber int NOT NULL,
   
PersonID int,
   
PRIMARY KEY (OrderID),
   
CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
   
REFERENCES Persons(PersonID)
);

ALTER TABLE上のSQL FOREIGN KEY

既に作成されたテーブルの「PersonID」列にFOREIGN KEY制約「Orders」を追加する場合、以下のSQLを使用してください:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);

FOREIGN KEY制約を名前付ける場合、複数の列にFOREIGN KEY制約を定義する場合、以下のSQL文法を使用してください:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);

FOREIGN KEY制約の削除

FOREIGN KEY制約を削除するには、以下のSQLを使用してください:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;

SQLキーワードリファレンス