[sql] SQL 테이블 생성 시 테이블 데이터 무결성 설정하기

SQL 데이터베이스에서 테이블을 생성할 때, 테이블 데이터의 무결성을 보장하기 위해 제약 조건을 설정할 수 있습니다. 이는 데이터베이스의 일관성과 신뢰성을 유지하기 위한 중요한 기능입니다. 이번 글에서는 SQL 테이블 생성 시 테이블 데이터 무결성을 설정하는 방법에 대해 알아보겠습니다.

1. NOT NULL 제약조건

테이블 생성 시, 특정 컬럼에 NOT NULL 제약 조건을 설정하면 해당 컬럼은 NULL 값을 허용하지 않습니다. 즉, 해당 컬럼에는 항상 데이터가 존재해야 합니다.

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    age INT
);

위의 예제에서 name 컬럼에 NOT NULL 제약 조건을 설정했습니다. 따라서 employees 테이블에서 name 컬럼에는 NULL 값을 저장할 수 없습니다.

2. UNIQUE 제약조건

UNIQUE 제약 조건은 테이블의 특정 컬럼에 중복된 값을 허용하지 않습니다. 즉, 해당 컬럼은 고유한 값을 가져야 합니다.

CREATE TABLE students (
    id INT PRIMARY KEY,
    name VARCHAR(50) UNIQUE,
    grade INT
);

위의 예제에서 name 컬럼에 UNIQUE 제약 조건을 설정했습니다. 따라서 students 테이블에서 name 컬럼에는 동일한 값을 저장할 수 없습니다.

3. PRIMARY KEY 제약조건

PRIMARY KEY 제약 조건은 테이블의 특정 컬럼을 일련번호로 설정합니다. 이 컬럼은 고유한 값을 가져야 하며, 해당 테이블의 주요 식별자 역할을 합니다.

CREATE TABLE books (
    id INT PRIMARY KEY,
    title VARCHAR(100),
    author VARCHAR(50)
);

위의 예제에서 id 컬럼에 PRIMARY KEY 제약 조건을 설정했습니다. 따라서 books 테이블에서 id 컬럼에는 고유한 값만 저장할 수 있습니다.

4. FOREIGN KEY 제약조건

FOREIGN KEY 제약 조건은 테이블 간의 관계를 나타냅니다. 특정 컬럼은 다른 테이블의 PRIMARY KEY와 FOREIGN KEY로 연결될 수 있습니다.

CREATE TABLE orders (
    id INT PRIMARY KEY,
    customer_id INT,
    order_date DATE,
    FOREIGN KEY (customer_id) REFERENCES customers(id)
);

위의 예제에서 orders 테이블의 customer_id 컬럼은 customers 테이블의 id 컬럼과 FOREIGN KEY로 연결되었습니다. 이는 orders 테이블의 customer_id가 customers 테이블의 id 값을 참조한다는 의미입니다.

위의 예제에서 다룬 제약 조건 이외에도 다양한 제약 조건을 설정할 수 있습니다. 데이터베이스 시스템에 따라 문법이나 제약 조건의 설정 방법이 다를 수 있으니, 관련 문서나 참고 자료를 확인하는 것이 좋습니다.


참고 자료: