[sql] 제약 조건과 데이터 연동
데이터베이스 시스템에서는 제약 조건(constraints)을 사용하여 데이터의 무결성과 일관성을 유지합니다. 제약 조건은 데이터베이스 테이블의 컬럼 또는 테이블 간에 설정할 수 있으며, 데이터의 삽입, 수정, 삭제에 제한을 두어 잘못된 데이터가 저장되지 않도록 합니다.
데이터베이스 제약 조건의 종류
-
NOT NULL: 컬럼의 값이 NULL이 아니어야 한다는 제약을 설정합니다. 이를 통해 필수적인 데이터가 입력되도록 보장합니다.
-
UNIQUE: 컬럼의 값이 중복되지 않아야 한다는 제약을 설정합니다. 특정 컬럼에 대해 유일한 값을 가지도록 합니다.
-
PRIMARY KEY: 컬럼이 고유식별자(primary key) 역할을 수행하도록 설정합니다. 해당 컬럼에는 중복된 값을 가지지 않으며, NULL 값을 가질 수 없습니다.
-
FOREIGN KEY: 다른 테이블의 고유식별자(primary key)와 관계를 맺는 제약을 설정합니다. 다른 테이블의 값을 참조하거나 참조 무결성을 유지할 수 있도록 합니다.
-
CHECK: 특정 조건에 맞는 값을 가지도록 제약을 설정합니다. 예를 들어, 나이가 18세 이상이어야 한다는 조건을 설정할 수 있습니다.
데이터 제약 조건의 설정
SQL 문을 사용하여 데이터베이스 내의 테이블에 제약 조건을 설정할 수 있습니다. 다음은 제약 조건을 설정하는 예시입니다.
-- NOT NULL 제약 조건 설정
CREATE TABLE students(
id INT NOT NULL,
name VARCHAR(100) NOT NULL,
age INT
);
-- UNIQUE 제약 조건 설정
CREATE TABLE employees(
id INT UNIQUE,
name VARCHAR(100),
department VARCHAR(100)
);
-- PRIMARY KEY 제약 조건 설정
CREATE TABLE orders(
order_id INT PRIMARY KEY,
customer_id INT,
product_id INT,
quantity INT
);
-- FOREIGN KEY 제약 조건 설정
CREATE TABLE orders(
order_id INT PRIMARY KEY,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
-- CHECK 제약 조건 설정
CREATE TABLE employees(
id INT,
name VARCHAR(100),
salary INT CHECK (salary >= 0)
);
위의 예시에서는 각각의 제약 조건에 맞게 테이블을 생성하며, 제약 조건을 통해 테이블 간의 관계를 설정하고 데이터의 일관성을 유지합니다.
제약 조건과 데이터 연동의 장점
- 데이터의 무결성을 보장하여 잘못된 데이터가 입력되는 것을 방지합니다.
- 데이터베이스의 일관성을 유지하여 데이터 조작 작업에 대한 안정성을 제공합니다.
- 데이터의 정확성과 신뢰성을 확보할 수 있습니다.
참고 문서: