데이터베이스 - ENUM과 SET

이강용·2024년 7월 29일
0

CS

목록 보기
108/109

ENUM 데이터 타입

  • 열이 가질 수 있는 값을 미리 정의된 문자열 목록에서 선택하도록 제한하는 데 사용
  • ENUM 필드는 하나의 값만 가질 수 있음

특징

  1. 미리 정의된 값 목록 : ENUM 타입을 정의할 때 가능한 값을 미리 정의
  2. 단일 선택 : 각 열은 미리 정의된 값 목록 중 하나의 값을 가질 수 있음
  3. 효율성 : ENUM 값은 내부적으로 정수로 저장되어 검색 및 비교가 빠름
  4. 사용 용도 : 상태, 카테고리, 등급 등의 제한된 값 집합을 가질 때 사용

예시

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    status ENUM('pending', 'shipped', 'delivered', 'canceled')
);

INSERT INTO orders (order_id, status) VALUES (1, 'pending');

SET 데이터 타입

  • 열이 미리 정의된 문자열 목록에서 0개 이상의 값을 가질 수 있도록 함
  • 즉, SET 필드는 여러 값을 동시에 가질 수 있음

특징

  1. 미리 정의된 값 목록 : SET 타입을 정의할 때 가능한 값을 미리 정의함
  2. 다중 선택 : 각 열은 미리 정의된 값 목록 중 여러 값을 가질 수 있음
  3. 효율성 : SET 값은 내부적으로 비트맵으로 저장되어 검색 및 비교가 빠름
  4. 사용 용도 : 여러 선택 항목을 동시에 저장해야 하는 경우 사용

예시

CREATE TABLE users (
    user_id INT PRIMARY KEY,
    hobbies SET('reading', 'traveling', 'swimming', 'coding')
);

INSERT INTO users (user_id, hobbies) VALUES (1, 'reading,swimming');

ENUM과 SET의 차이

값의 개수내부 저장 방식사용 용도제약 조건
ENUM단일 선택 (하나의 값만 선택 가능)내부적으로 정수로 저장상태, 카테고리 등 한 번에 하나의 값만 가질 때 유용미리 정의된 값 중 하나를 선택해야 하며, 애플리케이션 수정 시 데이터베이스에 정의된 리스트를 수정
SET다중 선택 (여러 값을 동시에 선택 가능)내부적으로 비트맵으로 저장태그, 취미 등 여러 값을 동시에 가질 때 유용미리 정의된 값 중 하나 이상의 값을 선택할 수 있으며, 선택하지 않을 수도 있음. 애플리케이션 수정 시 데이터베이스에 정의된 리스트를 수정.
profile
HW + SW = 1

0개의 댓글