MySQL에서는 ZEROFILL 속성을 사용하면 숫자 열의 값 앞을 자동으로 0으로 채울 수 있습니다. 예를 들어, int(10)으로 선언된 열에 1을 저장하면 '0000000001'처럼 표시됩니다.
1. 테이블 생성하기
먼저 테스트용 테이블을 생성합니다.
mysql> create table DemoTable
(
Number int
);
Query OK, 0 rows affected (0.58 sec)2. ZEROFILL 속성 추가하기
ALTER TABLE 문을 사용하여 Number 열에 ZEROFILL 속성과 NOT NULL 제약 조건을 추가합니다.
mysql> alter table DemoTable change Number Number int(10) zerofill not null; Query OK, 0 rows affected (1.13 sec) Records: 0 Duplicates: 0 Warnings: 0
3. 데이터 삽입하기
INSERT 명령어로 여러 개의 숫자를 입력합니다.
mysql> insert into DemoTable values(1); Query OK, 1 row affected (0.23 sec) mysql> insert into DemoTable values(12); Query OK, 1 row affected (0.53 sec) mysql> insert into DemoTable values(123); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(1234); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(12345); Query OK, 1 row affected (0.15 sec)
4. 결과 확인하기
SELECT 문으로 저장된 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다. 각 값이 지정된 자릿수(10자리)만큼 앞에 0이 채워져 출력되는 것을 확인할 수 있습니다.
+------------+ | Number | +------------+ | 0000000001 | | 0000000012 | | 0000000123 | | 0000001234 | | 0000012345 | +------------+ 5 rows in set (0.00 sec)
참고 사항
ZEROFILL은 표시 목적으로만 사용되며, 실제 저장되는 값에는 영향을 주지 않습니다. 또한 MySQL 8.0.17 버전부터는 ZEROFILL(및 DISPLAY WIDTH)이 공식적으로 지원 중단(deprecated)되었으므로, 새 프로젝트에서는 LPAD() 함수 등을 사용해 쿼리 단계에서 형식을 지정하는 방식을 권장합니다.