데이터베이스・SQL

[MySQL]기본키와 외래키 알아보기

truezero 2023. 7. 25. 12:33

이번 포스팅에서는 테이블의 기본키와 외래키에 대해 알아보도록 하겠습니다.

1. 기본키(Primary Key)

1-1. 기본키 특징

  1. 테이블의 각 레코드를 식별합니다.
  2. 중복되지 않는 고유값입니다.
  3. NULL값이 될 수 없습니다.
  4. 테이블 당 하나의 기본키가 존재합니다.

1-2. 기본키 명령어

CREATE TABLE <테이블명>
(
    <컬럼명1> <데이터타입> NOT NULL,
    <컬럼명2> <데이터타입> NOT NULL,
    ...
    PRIMARY KEY (<컬럼명1>, <컬럼명2>, ...)
);

위 코드는 테이블을 만들면서 기본키를 생성하는 명령어입니다.

2개 이상의 컬럼을 기본키로 지정할 수 있습니다.

 

ALTER TABLE <테이블명>
ADD PRIMARY KEY (<컬럼명1>, <컬럼명2>, ...);

다음으로는 이미 존재하는 테이블에 기본키를 새로 지정하는 방법에 대해 알아보겠습니다.

 

ALTER TABLE <테이블명>
DROP PRIMARY KEY;

기본키를 삭제하는 명령어입니다.

2. 외래키(Foreign Key)

2-1. 외래키 특징

  1. 한 테이블을 다른 테이블과 연결합니다.
  2. 참조되는 항목은 해당 테이블의 기본키입니다.
  3. 기본키와 달리 테이블 당 여러개 생성할 수 있습니다. (여러 테이블을 참조할 수 있기 때문)

2-2. 외래키 명령어

CREATE TABLE <테이블명>
(
  <컬럼명1> <데이터타입1>,
  <컬럼명2> <데이터타입2>,
  ...
  PRIMARY KEY (<컬럼명1>, <컬럼명2>, ...),
  CONSTRAINT <제한명>
  FOREIGN KEY (<컬럼명1>, <컬럼명2>, ...) REFERENCES <참조테이블명>(<참조컬럼명>)
);

위 코드는 테이블을 만들면서 외래키를 생성합니다.

 

SHOW CREATE TABLE <테이블명>;

자동으로 생성된 외래키의 이름을 확인하는 명령어입니다.

 

ALTER TABLE <테이블명>
ADD FOREIGN KEY (<컬럼명>) REFERENCES <참조테이블명>(<참조컬럼명>);

테이블을 만든 이후에도 외래키를 생성할 수 있습니다.

 

ALTER TABLE <테이블명>
DROP FOREIGN KEY <외래키 제한명>;

외래키를 삭제하는 명령어입니다.