Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 제약 조건(Constraint)이란? 개념부터 종류까지 한눈에 정리

제약 조건(Constraint)은 말 그대로 데이터에 적용되는 일종의 제한이나 규칙을 의미합니다. MySQL에서 제약 조건은 테이블에 입력될 수 있는 데이터를 제한하는 규칙을 정의하는 데 사용됩니다. 제약 조건을 활용하면 테이블 내부 데이터의 정확성(Accuracy)무결성(Integrity)을 효과적으로 유지할 수 있습니다.

MySQL 제약 조건의 두 가지 유형

MySQL의 제약 조건은 적용 범위에 따라 크게 두 가지로 나눌 수 있습니다.

1. 컬럼 레벨(Column Level) 제약 조건

테이블의 특정 컬럼에만 적용되어 해당 컬럼의 데이터만 제한하는 제약 조건입니다. 예를 들어, 특정 컬럼에 NULL 값이 들어오지 못하도록 설정하는 경우가 여기에 해당합니다.

2. 테이블 레벨(Table Level) 제약 조건

테이블 전체에 적용되어 테이블의 모든 데이터를 대상으로 동작하는 제약 조건입니다. 여러 컬럼을 조합해 하나의 기본 키를 지정하는 복합 키(Composite Key)가 대표적인 예입니다.

대표적인 MySQL 제약 조건 종류

  • NOT NULL – 해당 컬럼에는 반드시 값이 있어야 하며, NULL 값을 저장할 수 없습니다.
  • UNIQUE – 컬럼의 모든 값이 서로 달라야 하며, 중복된 값을 허용하지 않습니다.
  • PRIMARY KEY – NOT NULL과 UNIQUE의 성격을 모두 가지며, 각 행(Row)을 고유하게 식별하는 역할을 합니다.
  • FOREIGN KEY – 다른 테이블의 기본 키를 참조하여 테이블 간 관계를 맺고 참조 무결성을 보장합니다.
  • CHECK – 컬럼에 입력되는 값이 특정 조건을 반드시 만족하도록 강제합니다.
  • DEFAULT – 별도의 값이 지정되지 않았을 때 자동으로 저장될 기본값을 설정합니다.

제약 조건 활용 예시

다음은 여러 제약 조건을 함께 사용해 테이블을 생성하는 간단한 예시입니다.

CREATE TABLE users (
  id INT PRIMARY KEY,
  email VARCHAR(100) NOT NULL UNIQUE,
  age INT CHECK (age >= 0),
  country VARCHAR(50) DEFAULT 'Korea'
);

이처럼 제약 조건을 적절히 활용하면 잘못된 데이터의 입력을 사전에 차단하고, 데이터베이스의 신뢰성을 한층 높일 수 있습니다.