SQL 도전기 - 27

김치전사·2022년 7월 15일
0

SQL 도전기

목록 보기
27/36

오늘은 제약에 대해 공부한다

CREATE TABLE로 테이블을 정의할 경우, 열 이외에 제약도 정의할 수 있다.
그중 하나가 NOT NULL 제약이다.
NOT NULL제약 외에도 기본키(Primary Key) 제약이나 외부참조(정합) 제약 등이 있다.

CREATE TABLE sample631(
	a INTEGER NOT NULL,
    b INTEGER NOT NULL UNIQUE,
    c VARCHAR(30)
);

열에 대해 정의하는 제약을 '열 제약'이라고 부른다.
복수의 열에 제약을 설명하는 경우를 '테이블 제약'이라 부른다.

CREATE TABLE sample632(
	no INTEGER NOT NULL,
    sub_no INTEGER NOT NULL,
    name VARCHAR(30),
    PRIMARY KEY(no, sub_no)
	CONSTRAINT pkey_sample PRIMARY KEY(no, sub_no);
);

제약 이름은 CONSTRAINT 키워드를 사용해서 지정할 수 있다

열 제약을 추가할 경우 ALTER TABLE로 열 정의를 변경할 수 있다.

ALTER TABLE ADD 하부명령으로 추가할 수 있다

ALTER TABLE sample631 ADD CONSTRAINT pkey_sample631 PRIMARY KEY(a);

테이블 제약은 나중에 삭제할 수도 있다.

ALTER TABLE sample631 MODIFY c VARCHAR(30);
ALTER TABLE sample631 DROP CONSTRAINT pkey_sample631;


열 p가 sample634의 기본키이다.
기본키는 테이블의 행 한개를 특정할 수 있는 검색키이다.
기본키로 검색했을 때 복수의 행이 일치하는 데이터를 작성할 수 없다.


만약 중복된 값을 작성하면 어떻게 될까?

이처럼 열을 기본키로 지정해 유일한 값을 가지도록 하는 구조가 바로 기본키 제약이다.

profile
개인공부 블로그입니다. 상업적 용도 X

0개의 댓글