MySQL 외래키

2023. 1. 13. 01:25MySQL

목차
1. 외래키(Foreign Key)
2. 외래키(Foreign Key)의 특징
3. 외래키(Foreign Key)의 설정

  3.1. 테이블 생성시 외래키 설정
  3.2. 테이블 생성후 외래키 설정
4. 제약조건

1. 외래키(Foreign Key)란?

 

외래키(Foreign Key)란, 두 테이블의 데이터 간 연결을 설정하고 강제 적용하여 외래 키 테이블에 저장될 수 있는 데이터를 제어하는 데 사용되는 열(필드)이다.

 

< 그림 > 추가 예정

 

외래 키 참조에서는 한 테이블의 기본 키 값을 가지고 있는 열을 다른 테이블의 열이 참조할 때 두 테이블 간에 연결이 생성된다.

 

 

2. 외래키(Foreign Key)의 특징

 

외래키(FK)는 데이터베이스의 테이블간의 관계를 표현하고, 다른 테이블의 기본키(PK)를 참조한다.

 

외래키에는 몇 가지 특징이 있다.

 

  1. 외래키와 기본키의 도메인은 서로 같아야한다. (도메인 : 필드값의 집합)
  2. 참조되는 값이 변경되면 참조하는 값도 변경된다.
  3. NULL값과 중복값이 허용된다.
  4. 자기 자신의 기본키(PK)를 참조하는 외래키도 가능하다.
  5. 외래키가 기본키의 일부가 될 수 있다.

 

 

3. 외래키(Foreign Key)의 설정

 

외래키를 설정하는 방법은 두 가지가 있다.

 

  1. 테이블 생성시 외래키 설정
  2. ALTER를 통한 외래키 설정

 

3.1 테이블 생성시 외래키 설정

 

문법(Syntax)

[CONSTRAINTS 외래키 명] FOREIGN KEY (컬럼명)
REFERENCES 참조 테이블명(참조컬럼)

 

예제(Sample)

추가예정

 

 

3.2 테이블 생성후 외래키 설정(ALTER)

 

문법(Syntax)

ALTER TABLE 테이블명
ADD CONSTRAINTS 외래키명 FOREIGN KEY(컬럼명)
REFERENCES 참조 테이블명(참조컬럼)

 

 

4. 제약조건

 

외래키의 제약 조건을 설정함에 따라 부모 테이블(참조되는)에서의 데이터 수정, 삭제 시 외래키에 영향을 줄 수 있다.

 

보통 수정과 삭제에 의해 일어난다.

 

수정 - ON UPDATE [제약조건]

삭제 - ON DELETE [제약조건]

 

제약조건의 종류

  • CASCADE: 부모 테이블에서 수정이나 삭제시 같이 수정, 삭제가 일어난다.
  • SET NULL: 부모 테이블에서 수정이나 삭제시 NULL로 변경된다.
  • NO ACTION: 부모 테이블에서 수정이나 삭제시 아무일도 일어나지 않는다.(독립적)
  • SET DEFAULT: 부모 테이블에서 수정이나 삭제시 필드의 기본값(디폴트)으로 설정된다.
  • RESTRICT: 자식 테이블(참조하는)에 데이터가 남아있다면 부모 테이블(참조되는)에서도 수정, 삭제가 불가능하다.

'MySQL' 카테고리의 다른 글

MySQL JOIN  (0) 2023.01.13
MySQL 테이블의 구조  (0) 2022.12.25
MySQL SQL 문법 요약 - 데이터 조작어(DML)  (0) 2022.12.25
MySQL SQL 문법 요약 - 데이터 정의어(DDL)  (0) 2022.12.25
MySQL SQL의 종류  (0) 2022.12.24