SQL 시작하기 튜토리얼 매...로그인
SQL 시작하기 튜토리얼 매뉴얼
작가:php.cn  업데이트 시간:2022-04-12 14:15:40

SQL 외래 키



SQL FOREIGN KEY 제약 조건

한 테이블의 FOREIGN KEY는 다른 테이블의 PRIMARY KEY를 가리킵니다.

외래키를 예로 들어 설명해 보겠습니다. 다음 두 테이블을 살펴보십시오.

"Persons" 테이블:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

"Orders" 테이블:

O_IdOrderNoP_Id
1778953
2446783
3224562
4245621

"Orders" 테이블의 "P_Id" 열은 "Persons" 테이블의 "P_Id" 열을 가리킵니다.

"Persons" 테이블의 "P_Id" 열은 "Persons" 테이블의 기본 키입니다.

"주문" 테이블의 "P_Id" 열은 "주문" 테이블의 FOREIGN KEY입니다.

FOREIGN KEY 제약 조건은 테이블 간의 조인을 중단하는 동작을 방지하는 데 사용됩니다.

FOREIGN KEY 제약 조건은 외래 키 열이 가리키는 테이블의 값 중 하나여야 하기 때문에 잘못된 데이터가 외래 키 열에 삽입되는 것을 방지합니다.


CREATE TABLE 시 SQL FOREIGN KEY 제약 조건

다음 SQL은 "Orders" 테이블이 생성될 때 "P_Id" 열에 FOREIGN KEY 제약 조건을 생성합니다.

MySQL:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY(O_Id),
외래 키(P_Id) REFERENCES 개인(P_Id)
)

SQL Server/Oracle/MS 액세스:

CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

FOREIGN KEY 제약 조건의 이름을 지정하고 여러 열에 대한 FOREIGN KEY 제약 조건을 정의하려면 다음 SQL 구문을 사용하십시오.

MySQL / SQL Server / Oracle / MS Access:

테이블 주문 생성
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY(O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)


ALTER TABLE

"주문" 시 SQL FOREIGN KEY 제약 조건" 테이블이 생성되었습니다. "P_Id" 열에 FOREIGN KEY 제약 조건을 생성해야 하는 경우 다음 SQL을 사용하세요.

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY(P_Id)
REFERENCES Persons(P_Id)

FOREIGN KEY 제약 조건의 이름을 지정하고 FOREIGN을 정의해야 하는 경우 여러 열 KEY 제약 조건이 있는 경우 다음 SQL 구문을 사용하세요.

MySQL / SQL Server / Oracle / MS 액세스:

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY(P_Id)
REFERENCES Persons(P_Id)


FOREIGN KEY 제약 조건 취소

FOREIGN KEY 제약 조건을 취소하려면 아래 SQL을 사용하세요:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL 서버/Oracle/MS 액세스:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

PHP 중국어 웹사이트