목차
- 제약 조건 개요
- NOT NULL 제약 조건
- UNIQUE 제약 조건
- CHECK 제약 조건
- 예제
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 테이블에 제약 조건을 추가합니다.
- NOT NULL 제약 조건 추가:
- ALTER TABLE employees MODIFY hire_date DATE NOT NULL;
- UNIQUE 제약 조건 추가:
- ALTER TABLE employees ADD CONSTRAINT uq_email UNIQUE (email);
- CHECK 제약 조건 추가:
- ALTER TABLE employees ADD CONSTRAINT chk_salary CHECK (salary >= 3000);
위의 예제들을 통해 오라클 SQL에서 NOT NULL, UNIQUE, CHECK 제약 조건의 사용 방법을 이해할 수 있습니다. 이러한 제약 조건은 데이터 무결성을 유지하고, 잘못된 데이터 입력을 방지하는 데 중요한 역할을 합니다. 데이터베이스 설계 시 적절한 제약 조건을 사용하는 것은 매우 중요합니다. 이를 통해 데이터의 품질을 보장하고, 데이터베이스의 안정성을 높일 수 있습니다.
'Database' 카테고리의 다른 글
오라클 SYNONYM과 PUBLIC SYNONYM 사용법 (0) | 2024.12.03 |
---|---|
오라클 SEQUENCE로 자동 증가 번호 생성하기 (0) | 2024.12.03 |
오라클 SQL 제약 조건: NOT NULL, UNIQUE, CHECK (0) | 2024.12.03 |
오라클 SAVEPOINT로 복구 지점 설정하기 (0) | 2024.12.03 |
오라클 COMMIT과 ROLLBACK을 활용한 트랜잭션 관리 (0) | 2024.12.03 |