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

MySQL ENUM 타입 값에 공백을 포함할 수 있을까요?

네, 가능합니다. MySQL의 ENUM 타입에는 공백이 포함된 문자열 값을 그대로 사용할 수 있습니다. ENUM은 정의 시 나열한 문자열 목록 중 하나만 저장하는 타입이기 때문에, 값에 공백이 있어도 전혀 문제되지 않습니다.

실제 예제를 통해 단계별로 확인해 보겠습니다.

1. ENUM 컬럼이 있는 테이블 생성

먼저 공백이 포함된 값을 가진 ENUM 타입 컬럼으로 테이블을 생성합니다.

mysql> create table DemoTable
    (
    Size ENUM('SMALL SIZE','LARGE SIZE','XL SIZE')
    );
Query OK, 0 rows affected (0.65 sec)

'SMALL SIZE', 'LARGE SIZE', 'XL SIZE'처럼 각 ENUM 값에 공백이 포함되어 있어도 테이블이 정상적으로 생성됩니다.

2. 테이블 구조 확인

DESC 명령어를 사용하여 테이블 구조를 확인해 보겠습니다.

mysql> desc DemoTable;

실행 결과는 다음과 같습니다.

+-------+-------------------------------------------+------+-----+---------+-------+
| Field | Type                                      | Null | Key | Default | Extra |
+-------+-------------------------------------------+------+-----+---------+-------+
| Size  | enum('SMALL SIZE','LARGE SIZE','XL SIZE') | YES  |     | NULL    |       |
+-------+-------------------------------------------+------+-----+---------+-------+
1 row in set (0.01 sec)

Type 항목을 보면 공백이 포함된 ENUM 값들이 그대로 정의되어 있는 것을 확인할 수 있습니다.

3. 공백이 포함된 값 삽입

INSERT 명령어를 사용하여 공백이 포함된 ENUM 값을 테이블에 삽입합니다.

mysql> insert into DemoTable values('XL SIZE');
Query OK, 1 row affected (0.14 sec)

4. 저장된 데이터 조회

SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다. 공백이 포함된 ENUM 타입 값이 정상적으로 저장되고 조회되는 것을 확인할 수 있습니다.

+---------+
| Size    |
+---------+
| XL SIZE |
+---------+
1 row in set (0.00 sec)

정리 및 참고 사항

MySQL의 ENUM 타입은 내부적으로 문자열이 아닌 정수 인덱스(1부터 시작)로 저장됩니다. 따라서 공백이 포함된 긴 문자열 값을 사용하더라도 저장 공간 측면에서는 효율적입니다.

다만 몇 가지 주의할 점이 있습니다.

- ENUM 값은 대소문자를 구분하지 않고 입력할 수 있지만, 정의된 형태로 저장됩니다.
- 값 목록에 없는 문자열을 삽입하면 SQL 모드 설정에 따라 오류가 발생하거나 빈 문자열('')이 저장될 수 있습니다.
- 공백이 포함된 값을 조회할 때는 정확히 일치하는 문자열을 조건으로 사용해야 합니다.

이처럼 MySQL에서는 ENUM 타입 값에 공백을 자유롭게 포함할 수 있으며, 위 예제처럼 테이블 생성부터 데이터 삽입, 조회까지 모두 정상적으로 동작합니다.