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

MySQL에서 ENUM으로 열거 가능한 값 정의하고 사용하는 방법

MySQL에서는 ENUM 데이터 타입을 사용하면 열거 가능한(enumerable) 값을 손쉽게 정의할 수 있습니다. ENUM은 컬럼에 미리 지정된 값 목록 중 하나만 저장되도록 제한하는 기능으로, 상태값이나 옵션처럼 정해진 선택지가 있는 데이터를 다룰 때 매우 유용합니다.

ENUM 기본 문법

yourColumnName ENUM(value1,value2,........................N)

괄호 안에 허용할 값들을 쉼표로 구분하여 나열하면 됩니다. 이렇게 선언된 컬럼에는 목록에 포함된 값만 입력할 수 있으며, 그 외의 값을 넣으면 오류가 발생하거나 빈 문자열로 처리됩니다.

테이블 생성하기

먼저 ENUM 컬럼을 포함한 테이블을 생성해 보겠습니다.

mysql> create table EnumDemo
-> (
-> Light int,
-> IsONOrOff ENUM('ON','OFF')
-> );
Query OK, 0 rows affected (1.06 sec)

위 예제에서 IsONOrOff 컬럼은 ENUM('ON','OFF')로 선언되어, 'ON' 또는 'OFF' 두 가지 값만 가질 수 있습니다.

레코드 삽입하기

이제 테스트용 데이터를 삽입해 보겠습니다.

mysql> insert into EnumDemo values(1,'ON'),(0,'OFF');
Query OK, 2 rows affected (0.24 sec)
Records: 2 Duplicates: 0 Warnings: 0

전체 레코드 조회하기

저장된 모든 레코드를 확인하려면 아래와 같이 SELECT 문을 실행합니다.

mysql> select * from EnumDemo;

다음은 실행 결과입니다. ENUM으로 정의한 값들이 정상적으로 출력되는 것을 확인할 수 있습니다.

+-------+-----------+
| Light | IsONOrOff |
+-------+-----------+
| 1 | ON |
| 0 | OFF |
+-------+-----------+
2 rows in set (0.07 sec)

ENUM 사용 시 참고 사항

ENUM은 내부적으로 문자열이 아닌 숫자 인덱스(1부터 시작)로 저장되기 때문에 저장 공간을 절약할 수 있다는 장점이 있습니다. 다만 나중에 값 목록을 변경해야 할 경우 ALTER TABLE 작업이 필요하므로, 선택지가 자주 바뀌는 데이터라면 별도의 참조 테이블을 사용하는 것이 더 좋습니다.