제약

Hyun-jin Won·2021년 10월 31일
0

MySQL로 SQL 시작하기

목록 보기
24/24

테이블은 기준이 존재한다.

지금까지 배운 테이블은 컬럼명과 자료형에 맞게끔 데이터를 조작하는 것이였고, 해당 방법에서 크게 벗어나지 않는다면, 큰 문제없이 진행되는 그런 것들이였다. 하지만 실제로 테이블에는 좀 더 많은 조건들이 존재한다.

UNIQUE

CREATE TABLE t1 (
    col1 INT NOT NULL,
    col2 DATE NOT NULL,
    col3 INT NOT NULL,
    col4 INT NOT NULL,
    UNIQUE KEY (col1, col2)
)

UNIQUE는 말 그대로 유일하다는 뜻이다. 해당 조건이 붙은 컬럼은 중복된 데이터를 받을 수 없습니다. 만약 중복값을 입력하면 해당 쿼리문을 error 처리한다.

PRIMARY KEY

CREATE TABLE t5 (
    col1 INT NOT NULL,
    col2 DATE NOT NULL,
    col3 INT NOT NULL,
    col4 INT NOT NULL,
    PRIMARY KEY(col1)
);

유일한 키로 해당 칼럼을 사용한다는 조건이다. 해당 조건은 UNIQUE와 비슷해보지만, UNIQUE는 컬럼 여러개에 적용 가능하지만 PRIMARY는 오직 하나의 테이블에, 단 한번, 하나 이상의 컬럼에만 선언이 가능하다.
이러한 이유로 PRIMARY KEY 조건을 테이블 제약이라고 한다.

또한 PRIMARY KEY는 NULL을 절대로 허용하지 않으나, UNIQUE는 이를 허용하며, 또한 NULL이 여러개 있어도 이를 중복으로 생각하지 않는다.

재미있는 점은 컬럼을 하나가 아닌 여러개의 컬럼을 선택할 수 있다는 점이다. 이를 복합키라고 부르며, NtoN 조합 등의 테이블 관계에서 사용되게 된다. 자세한 내용은 링크를 확인할 것

해당 조건은 차후에 배우게 될 인덱스의 생성과 탐색 용도로 주로 사용되게 된다.

CONSTRAINT

ALTER TABLE tableADD CONSTRAINT 조건명칭 조건;
ALTER TABLE tableDROP CONSTRAINT 조건명칭;

ALTER 조작으로 테이블의 컬럼에 조건을 추가할 때 사용된다.
해당 조건을 사용하면 테이블에 걸었던 조건에 명칭 부여가 가능해진다. 이로 인해서 DB 작업자들은 명칭을 보고 제약조건에 눈치챌 수 있으며, 삭제 또한 명칭으로 삭제가 가능하니 유지보수 또한 용이해진다.

profile
삽질을 주체하지 못하는 잉간

0개의 댓글