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 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의 기본키이다.
기본키는 테이블의 행 한개를 특정할 수 있는 검색키이다.
기본키로 검색했을 때 복수의 행이 일치하는 데이터를 작성할 수 없다.
만약 중복된 값을 작성하면 어떻게 될까?
이처럼 열을 기본키로 지정해 유일한 값을 가지도록 하는 구조가 바로 기본키 제약이다.