
FOREIGN KEY
FOREIGN KEY 제약 조건은 두 테이블을 함께 연결하는 데 사용되는 키다.
FOREIGN KEY는 다른 테이블의 PRIMARY KEY를 참조하는 한 테이블의 필드(또는 필드 모음)다.
CREATE TABLE의 FOREIGN KEY
FOREIGN KEY 생성
“Orders” 테이블이 생성될 때 “PersonID” 열에 FOREIGN KEY를 생성한다.
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 제약 조건의 이름 지정을 허용하고 여러 열에 대한 FOREIGN KEY 제약 조건을 정의한다.
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의 FOREIGN KEY
FOREIGN KEY 생성
“Orders” 테이블이 이미 생성된 경우 “PersonID” 열에 대한 FOREIGN KEY 제약 조건을 생성한다.
MySQL/SQL SERVER/Oracle/MS Access
ALTER TABLE Orders ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
FOREIGN KEY 정의
FOREIGN KEY 제약 조건의 이름 지정을 허용하고 여러 열에 대한 FOREIGN KEY 제약 조건을 정의한다.
MySQL/SQL SERVER/Oracle/MS Access
ALTER TABLE Orders ADD CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
FOREIGN KEY 삭제
FOREIGN KEY 제약 조건을 삭제한다.
MySQL
ALTER TABLE Orders DROP FOREIGN KEY FK_PersonOrder;
SQL SERVER/Oracle/MS Access
ALTER TABLE Orders DROP CONSTRAINT FK_PersonOrder;
참고
W3C School - SQL FOREIGN KEY Keywords
W3C School - SQL Tutorial