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

MySQL에서 열 값을 0으로 채우는 방법 – ZEROFILL 활용법

MySQL에서 숫자 열의 표시값 앞을 0으로 채우고 싶다면 ZEROFILL 개념을 사용하면 됩니다. ZEROFILL은 컬럼 정의 시 설정한 표시 폭(display width)만큼 필드의 표시값 앞에 0을 채워 출력해 줍니다.

1. 테이블 생성하기

먼저 ZEROFILL 속성을 적용한 테이블을 생성합니다.

mysql> create table DemoTable626 (Value int(5) zerofill);
Query OK, 0 rows affected (0.71 sec)

위 예제에서는 int(5)로 표시 폭을 5자리로 지정했기 때문에, 실제 저장된 값이 5자리보다 짧으면 앞부분이 0으로 채워집니다.

2. 레코드 삽입하기

insert 명령을 사용하여 테이블에 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable626 values(9);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable626 values(12);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable626 values(567);
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable626 values(3478);
Query OK, 1 row affected (0.13 sec)

3. 결과 확인하기

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

mysql> select *from DemoTable626;

위 쿼리를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

+-------+
| Value |
+-------+
| 00009 |
| 00012 |
| 00567 |
| 03478 |
+-------+
4 rows in set (0.00 sec)

ZEROFILL 사용 시 참고 사항

ZEROFILL은 실제 저장되는 데이터가 아니라 표시 방식에만 영향을 줍니다. 즉, 내부적으로는 원래 숫자 값 그대로 저장되며, 조회 시에만 지정된 자릿수만큼 앞에 0이 붙어 출력됩니다.

또한 MySQL 8.0.17부터는 정수 타입의 표시 폭(display width)과 ZEROFILL이 더 이상 권장되지 않으므로(deprecated), 새 프로젝트에서는 LPAD() 함수 등을 대안으로 고려하는 것이 좋습니다.