• 데이터 무결성 유지를 위해 사용자가 지정할 수 있는 성질
  • 모든 제약조건은 데이터 사전에 저장된다.

    의미있는 이름을 부여했다면 constraint를 쉽게 참조할 수 있다.

  • 테이블 생성 당시 지정할 수 있고, 테이블 생성 후 ALTER명령어를 통해 추가 가능하다.
  • NOT NULL 제약조건은 반드시 컬럼 레벨에서만 가능하다.

1. NOT NULL 조건

무조건 해당 컬럼에 데이터를 입력해야 한다.

CREATE TABLE STUDENT(
    stu_name VARCHAR(10) NOT NULL
)

혹은....


CREATE TABLE STUDENT(
    stu_name VARCHAR(10) CONSTRAINT stu_name_not_null NOT NULL
)

2. UNIQUE 조건

  • 데이터의 유일성을 보장한다.
  • 자동으로 인덱스가 생성된다.
ALTER TABLE STUDENT
    ADD CONSTRAINT stu_uk UNIQUE (stu_num)

STUDENT 태이블의 stu_num속성을 UNIQUE 제약조건 생성

3. CHECK 조건

: 컬럼의 값을 어떤 특정 범위로 제한할 수 있다.

ALTER TABLE STUDENT
    ADD CONSTRAINT student_credit_ck_comm
    CHECK (credit >= 0 AND credit <= 30);

4. DEFAULT 지정

CREATE TABLE STUDENT(
    ...
    credit DEFAULT 0
);

5. PRIMARY KEY 지정

: 기본키를 지정한다.

  • UNIQUE + NOT NULL
  • 인스턴스를 식별하는 역할이며 다른 테이블에서 외래키들이 참조할 수 있는 자격을 가지고 있다.
CREATE TABLE STUDENT(
    student_number NUMBER CONSTRAINT student_number_pk PRIMARY KEY
)

6. FOREIGN KEY 지정

: 기본키를 참조하는 컬럼 또는 컬럼들의 집합이다.

ALTER TABLE STUDENT