MySQL에서 열에 입력할 수 있는 값을 미리 정해진 몇 가지로 제한하고 싶다면 ENUM 데이터 타입을 사용하면 됩니다. ENUM은 열에 저장될 수 있는 값을 문자열 목록으로 지정하는 방식으로, 목록에 없는 다른 값은 삽입할 수 없습니다.
1. ENUM 타입으로 테이블 생성하기
먼저 'RED', 'GREEN', 'BLUE' 세 가지 색상 값만 허용하는 열을 가진 테이블을 생성해 보겠습니다.
mysql> create table DemoTable838(Color ENUM('RED','GREEN','BLUE'));
Query OK, 0 rows affected (0.67 sec)위 쿼리에서 Color 열은 반드시 RED, GREEN, BLUE 중 하나의 값만 가질 수 있습니다.
2. 레코드 삽입하기
INSERT 명령을 사용해 테이블에 데이터를 삽입합니다.
mysql> insert into DemoTable838 values('RED');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable838 values('Green');
Query OK, 1 row affected (0.64 sec)
mysql> insert into DemoTable838 values('Blue');
Query OK, 1 row affected (0.88 sec)참고로 ENUM은 대소문자를 구분하지 않습니다. 따라서 'Green'처럼 소문자를 섞어 입력해도 자동으로 정의된 형식인 'GREEN'으로 변환되어 저장됩니다.
3. 결과 확인하기
SELECT 문을 사용해 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable838;
실행 결과는 다음과 같습니다.
+-------+ | Color | +-------+ | RED | | GREEN | | BLUE | +-------+ 3 rows in set (0.00 sec)
정리
ENUM 데이터 타입을 활용하면 열에 들어갈 수 있는 값을 명확하게 제한할 수 있어, 잘못된 데이터가 입력되는 것을 데이터베이스 수준에서 방지할 수 있습니다. 성별, 상태 코드, 카테고리 등 선택지가 고정된 데이터를 다룰 때 특히 유용합니다.