[sql] SQL 데이터베이스의 데이터 제약 조건 설정

데이터베이스 설계에서 데이터의 일관성과 유효성을 유지하기 위해 데이터 제약 조건을 설정하는 것은 매우 중요합니다. SQL 데이터베이스에서는 다양한 제약 조건을 설정하여 데이터의 무결성을 보장할 수 있습니다. 이 글에서는 SQL 데이터베이스에서 사용되는 주요 데이터 제약 조건에 대해 알아보겠습니다.

Table of Contents

  1. NOT NULL 제약
  2. UNIQUE 제약
  3. PRIMARY KEY 제약
  4. FOREIGN KEY 제약
  5. CHECK 제약

NOT NULL 제약

NOT NULL 제약은 열(Column)이 NULL 값을 허용하지 않도록 설정하는 제약 조건입니다. 이를 통해 해당 열에는 NULL 값이 저장되지 않으므로 데이터의 무결성을 유지할 수 있습니다.

다음은 NOT NULL 제약을 설정하는 간단한 예제입니다.

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    LastName VARCHAR(50) NOT NULL,
    FirstName VARCHAR(50) NOT NULL,
    ...
);

UNIQUE 제약

UNIQUE 제약은 열의 값이 고유(unique)하도록 설정하는 제약 조건입니다. 즉, 해당 열에는 중복된 값이 저장될 수 없습니다. 이를 통해 데이터 중복을 방지하고 데이터의 일관성을 유지할 수 있습니다.

아래 예제는 UNIQUE 제약을 설정하는 방법입니다.

CREATE TABLE Products (
    ProductID INT PRIMARY KEY,
    ProductName VARCHAR(50) UNIQUE,
    ...
);

PRIMARY KEY 제약

PRIMARY KEY 제약은 테이블의 각 행(row)을 고유하게 식별할 수 있는 열의 조합으로 구성됩니다. 이를 통해 기본 키(primary key)가 되는 열에는 NOT NULLUNIQUE 제약이 자동으로 설정됩니다.

다음은 PRIMARY KEY 제약을 가진 테이블을 생성하는 예제입니다.

CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    ...
);

FOREIGN KEY 제약

FOREIGN KEY 제약은 한 테이블의 열이 다른 테이블의 기본 키(primary key)를 참조하도록 설정하는 제약 조건입니다. 이를 통해 데이터의 무결성을 유지하고 참조 무결성을 강제할 수 있습니다.

다음은 FOREIGN KEY 제약을 설정하는 예제입니다.

CREATE TABLE OrderDetails (
    OrderID INT,
    ProductID INT,
    ...
    FOREIGN KEY (OrderID) REFERENCES Orders(OrderID),
    FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);

CHECK 제약

CHECK 제약은 열의 값을 지정된 조건에 따라 제한하는 제약 조건입니다. 이를 통해 데이터의 유효성을 검증하고 부적절한 값을 방지할 수 있습니다.

아래는 CHECK 제약을 설정하는 예제입니다.

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    Salary DECIMAL(10, 2) CHECK (Salary >= 0),
    ...
);

위에서 설명한 데이터 제약 조건을 활용하여 SQL 데이터베이스의 데이터 무결성을 유지하고 데이터의 일관성을 보장할 수 있습니다.

이상으로 SQL 데이터베이스의 데이터 제약 조건 설정에 대해 알아보았습니다.

참고 문헌: Microsoft SQL Server Documentation

참고 문헌: PostgreSQL Documentation