모든 SQL 문은 ;으로 문장 끝을 표시, SQL 문에 사용되는 키워드는 대소문자를 구분하지 않음
생성할 테이블을 구성하는 속성들의 이름, 데이터 타입 및 제약 사항에 대한 정의, 기본키/대체키/외래키의 정의, 데이터 무결성을 위한 제약조건의 정의 등을 포함
1)은 테이블을 구성하는 각 속성의 이름과 데이터 타입, 기본적인 제약 사항을 정의
2)는 기본키로 테이블에 하나만 존재
3)은 대체키로 테이블에 여러 개 존재 가능
4)는 외래키로 테이블에 여러 개 존재 가능
5)는 데이터 무결성을 위한 제약조건으로 여러 개 존재 가능
CREATE TABLE 테이블_이름 (
1) 속성_이름 데이터_타입 [NOT NULL] [DEFAULT]
2) [PRIMARY KEY (속성_리스트)]
3) [UNIQUE (속성_리스트)]
4) [FOREIGN KEY (속성_리스트) REFERENCES 테이블_이름(속성_리스트)] [ON DELETE 옵션] [ON UPDATE 옵션]
5) [CONSTRAINT 이름] [CHECK (조건)]
);
기본키, 대체키, 외래키를 지정할 수 있음
참조되는 테이블에서 투플을 삭제하거나 변경할 때 처리하는 방식
NO ACTION - 기본 설정, 투플을 삭제/변경하지 못하게 함
CASCADE - 관련 투플을 함께 삭제/변경
SET NULL - 관련 투플의 외래키 값을 NULL로 변경
SET DEFAULT - 관련 투플의 외래키 값을 미리 지정한 기본 값으로 변경
데이터 무결성 제약조건의 정의
CHECK를 사용해 특정 속성에 대한 제약조건을 지정할 수 있음 (CHECK로 지정한 제약조건을 만족하는 투플만 존재)
CONSTRAINT로 CHECK에 고유한 명칭 부여 가능, 이후에 제약조건을 수정하거나 제거할 때 식별하기가 쉬움