Home SQL 제약조건 - FK
Post
Cancel

SQL 제약조건 - FK


SQL 제약조건 FOREIGN KEY



FOREIGN KEY

  • 제약 조건을 설정한 필드는 외래 키 라고 부르며 한 테이블을 다른 테이블과 연결 시켜주는 역할을 합니다. 외래키가 설정된 테이블에 레코드를 입력하면 기준이 되는 테이블의 내용을 참조해서 레코드가 입력됩니다.
  • FOREIGN KEY 제약 조건은 하나의 테이블을 다른 테이블에 의존하게 만듭니다.
  • FK 제약 조건을 설정 할 때 참조되는 테이블의 필드는 반드시 UK,PK의 제약 조건이 설정 되어 있어야 합니다.

CREATE 문법으로 FOREIGN KEY 설정

  • CREATE 문법으로 테이블을 생성 할 때 해당 필드 타입 뒤에 FOREIGN KEY를 명시하면 해당 필드가 왜래키로 설정 됩니다.

예시

1
2
3
4
5
6
CREATE TABLE 테이블이름(
    필드이름, 필드타입,
 [CONSTRAINT 제약조건이름]
 FOREIGN KEY (필드이름)
 REFERENCES 테이블이름 (필드이름)
)

예제

1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE Test(
    ID INT PRIMARY KEY,
    Name VARCHAR(30)
);

CREATE TABLE Test2(
    ID INT,
    ParentID INT,
    FOREIGN KEY (ParentID)
    REFERENCES Test(ID) ON UPDATE CASCADE
);

실행 결과

placeholer

ALTER 문으로 FOREIGN KEY 설정

  • ALTER 문으로 테이블에 새로운 필드를 추가하거나 수정할 때도 FOREIGN KEY 제약 조건을 설정할 수 있습니다.

예시

1
2
3
4
ALTER TABLE 테이블이름
ADD [CONSTRAINT 제약조건이름]
FOREIGN KEY (필드이름)
REFERENCES 테이블이름 (필드이름)

예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE Test(
    ID INT PRIMARY KEY,
    Name VARCHAR(30)
);

CREATE TABLE Test3(
    ID INT PRIMARY KEY,
    Name VARCHAR(30)
);

ALTER TABLE Test
ADD CONSTRAINT ParentID
FOREIGN KEY (ID)
REFERENCES Test3 (ID);

실행 결과

placeholer

FOREIGN KEY 제약 조건 삭제

1
2
3
ALTER TABLE 테이블이름
DROP FOREIGN KEY 제약조건이름
This post is licensed under CC BY 4.0 by the author.