Section 4. 더 깊이 알아보기

기본키

중복되지 않는 고유값만 허용
NULL 값 허용하지 않음
테이블당 하나의 기본키만 지정 가능

1
2
3
4
5
6
7
-- 기본키 넣는 방법 2
CREATE TABLE people (
first_name CHAR(2),
last_name CHAR(3),
nickname VARCHAR(10),
PRIMARY KEY (first_name)
);

다중 기본키

1
2
3
4
5
6
CREATE TABLE people (
first_name CHAR(2),
last_name CHAR(3),
nickname VARCHAR(10),
PRIMARY KEY (first_name, last_name)
);

고유키

중복 제한, NULL 값 가능

1
2
3
4
5
6
7
-- 고유키 넣는 방법 2
CREATE TABLE people (
person_id INT AUTO_INCREMENT PRIMARY KEY,
first_name CHAR(2),
last_name CHAR(3),
UNIQUE (first_name)
);

외래키

1
2
3
4
5
6
ALTER TABLE _자식테이블명
ADD CONSTRAINT _제약명
FOREIGN KEY ( _자식테이블외래키 )
REFERENCES 부모테이블명 ( _부모테이블기본키 )
-- ON DELETE _삭제시제약
-- ON UPDATE _수정시제약

외래키 제약

제약 |설명 |비고
——— | ———
NO ACTION, RESTRICT| 자식 테이블에 해당 외래키가 있을 때 수정/삭제되지 않음 |
CASCADE |자식 테이블의 해당 행도 수정/삭제 |
SET NULL |자식 테이블의 외래키를 NULL로 |자식 외래키가 NOT NULL일 시 설정 불가
SET DEFAULT |자식 테이블의 외래키를 기본값으로 |InnoDB 엔진에서 사용 불가