[sql] 제약 조건과 데이터 연동

데이터베이스 시스템에서는 제약 조건(constraints)을 사용하여 데이터의 무결성과 일관성을 유지합니다. 제약 조건은 데이터베이스 테이블의 컬럼 또는 테이블 간에 설정할 수 있으며, 데이터의 삽입, 수정, 삭제에 제한을 두어 잘못된 데이터가 저장되지 않도록 합니다.

데이터베이스 제약 조건의 종류

  1. NOT NULL: 컬럼의 값이 NULL이 아니어야 한다는 제약을 설정합니다. 이를 통해 필수적인 데이터가 입력되도록 보장합니다.

  2. UNIQUE: 컬럼의 값이 중복되지 않아야 한다는 제약을 설정합니다. 특정 컬럼에 대해 유일한 값을 가지도록 합니다.

  3. PRIMARY KEY: 컬럼이 고유식별자(primary key) 역할을 수행하도록 설정합니다. 해당 컬럼에는 중복된 값을 가지지 않으며, NULL 값을 가질 수 없습니다.

  4. FOREIGN KEY: 다른 테이블의 고유식별자(primary key)와 관계를 맺는 제약을 설정합니다. 다른 테이블의 값을 참조하거나 참조 무결성을 유지할 수 있도록 합니다.

  5. 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)
);

위의 예시에서는 각각의 제약 조건에 맞게 테이블을 생성하며, 제약 조건을 통해 테이블 간의 관계를 설정하고 데이터의 일관성을 유지합니다.

제약 조건과 데이터 연동의 장점


참고 문서: