컴퓨터 과학/데이터 베이스

Primary Key와 Unique의 차이

Data Jun 2025. 8. 19. 11:55

SQL에서 Primary KeyUnique는 모두 "중복을 허용하지 않는다"는 공통점을 갖고 있습니다.
하지만 두 속성은 목적과 제약 조건에서 미세한 차이를 보입니다.

 

Primary Key

  • 테이블에서 특정 row를 유일하게 식별하기 위한 컬럼
  • 특징
    • 테이블당 단 하나만 존재 가능
    • NULL 허용 불가
    • 다른 테이블에서 Foreign Key로 참조될 수 있음
  • NULL이 허용되지 않는 이유
    • SQL에서 NULL = NULL 은 True가 아님 → 특정 row를 정확히 찾을 수 없음
    • 조인(Join) 시에도 ON colA = colB 조건에 NULL이 들어가면 매칭되지 않음

예시:

CREATE TABLE member (
    id INT PRIMARY KEY,
    email VARCHAR(100) NOT NULL
);

 

Unique

  • 각 row마다 값이 서로 달라야 하는 제약 조건
  • 특징
    • 한 테이블에 여러 개 지정 가능
    • NULL 허용 (각 NULL은 고유하다고 인정됨)

예시:

CREATE TABLE member (
    id INT PRIMARY KEY,
    email VARCHAR(100) UNIQUE,
    phone VARCHAR(20) UNIQUE
);

여기서는 email, phone 모두 중복 불가지만, NULL은 허용됩니다.

 

 

두 속성의 핵심 차이

 

정리

  • Primary Key : 테이블의 "대표 키", row 식별자, NULL 불가, 하나만 지정
  • Unique : 중복 방지 장치, 여러 개 지정 가능, NULL 허용
  • 둘은 비슷하지만, 목적과 NULL 허용 여부에서 차이가 있습니다.

👉 실무에서는 식별자 역할은 Primary Key,
**중복 방지(이메일, 전화번호 등)**는 Unique로 나눠서 사용하는 경우가 많습니다!