지극히 개인적인 공부 노트/데이터베이스(Database)

[SQL] 키(Key)(feat. 유일키, 복합키, 외래키)

AS J 2021. 9. 28. 18:52

키(Key)란, 데이터베이스에서 튜플(또는 레코드, 행) 간 구분을 위한 값 또는 속성이다.

키는 유일키, 복합키, 외래키 등이 있으며, SQL에서 이러한 키를 설정하는 방법은 아래와 같다.

 

유일키(Primary Key)

테이블에서 튜플(레코드, 행)을 구분 지어주는 고유 식별 값(속성)이다. 유일키로 설정되는 값(속성)은 중복되거나 NULL이 될 수 없다.

-- 여기서 테이블명이나 속성명 등은 따옴표가 아니라 백틱(`)으로 감싸준다는 것을 명심할 것
CREATE TABLE `테이블명`{
    `속성명1` 타입,
    `속성명2` 타입,
    ...
    PRIMARY KEY(`유일키로 설정할 속성명`)
};

 

복합키(Composite Key)

두 개 이상의 속성을 활용하여 일종의 묶음으로써 다른 값(속성) 묶음과 구분 지어주는 방법이다.

-- 여기서 테이블명이나 속성명 등은 따옴표가 아니라 백틱(`)으로 감싸준다는 것을 명심할 것
CREATE TABLE `테이블명`{
    `속성명1` 타입,
    `속성명2` 타입,
    ...
    PRIMARY KEY(`복합키로 설정할 속성명1`, `복합키로 사용할 속성명2`)
};

 

외래키(Foreign Key)

다른 테이블의 키와 연결을 해주는 키이며, 참조의 무결성을 유지하기 위해 활용된다.

- 참조의 무결성이란 외래키 값이 참조 중인 테이블의 값과 일관성을 가지는 것을 의미한다.

- 다른 테이블에서 해당 키 값을 참조하고, 현재 테이블에 추가 또는 수정하려는 값이 참조하는 테이블에 없는 값이라면 동작하지 않도록 한다.

-- 여기서 테이블명이나 속성명 등은 따옴표가 아니라 백틱(`)으로 감싸준다는 것을 명심할 것
CREATE TABLE `테이블명`{
    `속성명1` 타입,
    `속성명2` 타입,
    ...
    FOREIGN KEY(`외래키로 설정할 속성명`) REFERENCES `참조하는 속성이 있는 테이블`(`참조할 속성명`)
};