본문 바로가기
Database

오라클 SQL 제약 조건: NOT NULL, UNIQUE, CHECK

by 굿센스굿 2024. 12. 3.
반응형


목차

  1. 제약 조건 개요
  2. NOT NULL 제약 조건
  3. UNIQUE 제약 조건
  4. CHECK 제약 조건
  5. 예제

1. 제약 조건 개요

제약 조건(Constraints)은 데이터베이스 테이블의 데이터 무결성을 유지하기 위해 사용됩니다. 오라클에서는 다양한 제약 조건을 제공하며, 이 글에서는 NOT NULL, UNIQUE, CHECK 제약 조건에 대해 설명하고 각각의 사용법과 예제를 통해 이해를 돕겠습니다.


2. NOT NULL 제약 조건

NOT NULL 제약 조건은 특정 컬럼에 NULL 값을 허용하지 않도록 합니다. 이는 해당 컬럼에 반드시 값이 입력되도록 보장합니다.

2.1. 구문

테이블 생성 시:

CREATE TABLE table_name (
    column_name data_type NOT NULL,
    ...
);

기존 테이블에 추가 시:

ALTER TABLE table_name
MODIFY column_name data_type NOT NULL;

2.2. 예제

  • 테이블 생성 시 NOT NULL 제약 조건 추가:
  • CREATE TABLE employees ( employee_id NUMBER PRIMARY KEY, first_name VARCHAR2(50), last_name VARCHAR2(50) NOT NULL );
  • 기존 테이블에 NOT NULL 제약 조건 추가:
  • ALTER TABLE employees MODIFY first_name VARCHAR2(50) NOT NULL;

3. UNIQUE 제약 조건

UNIQUE 제약 조건은 특정 컬럼의 값이 테이블 내에서 고유하도록 합니다. 동일한 값이 중복되어 입력될 수 없습니다.

3.1. 구문

테이블 생성 시:

CREATE TABLE table_name (
    column_name data_type UNIQUE,
    ...
);

기존 테이블에 추가 시:

ALTER TABLE table_name
ADD CONSTRAINT constraint_name UNIQUE (column_name);

3.2. 예제

  • 테이블 생성 시 UNIQUE 제약 조건 추가:
  • CREATE TABLE employees ( employee_id NUMBER PRIMARY KEY, email VARCHAR2(100) UNIQUE, first_name VARCHAR2(50), last_name VARCHAR2(50) );
  • 기존 테이블에 UNIQUE 제약 조건 추가:
  • ALTER TABLE employees ADD CONSTRAINT uq_email UNIQUE (email);

4. CHECK 제약 조건

CHECK 제약 조건은 컬럼에 입력되는 값이 특정 조건을 만족하도록 합니다. 주로 특정 범위나 패턴을 제한할 때 사용됩니다.

4.1. 구문

테이블 생성 시:

CREATE TABLE table_name (
    column_name data_type CHECK (condition),
    ...
);

기존 테이블에 추가 시:

ALTER TABLE table_name
ADD CONSTRAINT constraint_name CHECK (condition);

4.2. 예제

  • 테이블 생성 시 CHECK 제약 조건 추가:
  • CREATE TABLE employees ( employee_id NUMBER PRIMARY KEY, salary NUMBER CHECK (salary > 0), first_name VARCHAR2(50), last_name VARCHAR2(50) );
  • 기존 테이블에 CHECK 제약 조건 추가:
  • ALTER TABLE employees ADD CONSTRAINT chk_salary CHECK (salary >= 3000);

5. 예제

다음은 NOT NULL, UNIQUE, CHECK 제약 조건을 실제 데이터베이스 테이블에서 사용하는 예제입니다.

예제 1: 종합 테이블 생성

employees 테이블을 생성하면서 여러 제약 조건을 함께 추가합니다.

CREATE TABLE employees (
    employee_id NUMBER PRIMARY KEY,
    first_name VARCHAR2(50) NOT NULL,
    last_name VARCHAR2(50) NOT NULL,
    email VARCHAR2(100) UNIQUE,
    hire_date DATE NOT NULL,
    salary NUMBER CHECK (salary >= 3000)
);

예제 2: 기존 테이블에 제약 조건 추가

이미 생성된 employees 테이블에 제약 조건을 추가합니다.

  1. NOT NULL 제약 조건 추가:
  2. ALTER TABLE employees MODIFY hire_date DATE NOT NULL;
  3. UNIQUE 제약 조건 추가:
  4. ALTER TABLE employees ADD CONSTRAINT uq_email UNIQUE (email);
  5. CHECK 제약 조건 추가:
  6. ALTER TABLE employees ADD CONSTRAINT chk_salary CHECK (salary >= 3000);

위의 예제들을 통해 오라클 SQL에서 NOT NULL, UNIQUE, CHECK 제약 조건의 사용 방법을 이해할 수 있습니다. 이러한 제약 조건은 데이터 무결성을 유지하고, 잘못된 데이터 입력을 방지하는 데 중요한 역할을 합니다. 데이터베이스 설계 시 적절한 제약 조건을 사용하는 것은 매우 중요합니다. 이를 통해 데이터의 품질을 보장하고, 데이터베이스의 안정성을 높일 수 있습니다.

반응형