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

MySQL의 ZF(ZEROFILL)란? 행 선언에서 제로필 사용법 완벽 정리

MySQL에서 ZF는 ZEROFILL(제로필)을 의미합니다. 행 선언 시 컬럼에 ZEROFILL 옵션을 지정하면, 설정된 자릿수보다 숫자가 짧을 경우 앞부분이 0으로 채워져 표시됩니다.

ZEROFILL 테이블 생성하기

먼저 int 필드 크기를 10으로 설정한 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1332
    -> (
    -> Number int(10) ZEROFILL NOT NULL DEFAULT 0
    -> );
Query OK, 0 rows affected (0.59 sec)

위 예제에서 Number 컬럼은 int(10) ZEROFILL로 선언되어 있으므로, 저장된 값이 10자리보다 짧으면 나머지 자리가 자동으로 0으로 채워집니다.

레코드 삽입하기

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

mysql> insert into DemoTable1332 values();
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1332 values(1);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1332 values(10);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1332 values(100);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1332 values(554646);
Query OK, 1 row affected (0.09 sec)

저장된 데이터 확인하기

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

mysql> select * from DemoTable1332;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다. 필드 크기 10보다 작은 숫자에는 0이 채워지는 것을 확인할 수 있습니다.

+------------+
| Number     |
+------------+
| 0000000000 |
| 0000000001 |
| 0000000010 |
| 0000000100 |
| 0000554646 |
+------------+
5 rows in set (0.00 sec)

결과 분석

삽입한 값 1은 0000000001로, 10은 0000000010으로, 554646은 0000554646으로 표시되었습니다. 이처럼 ZEROFILL은 지정된 자릿수(10자리)에 맞춰 앞자리를 0으로 채워 일정한 형식으로 데이터를 보여줍니다.

참고로 ZEROFILL은 실제 저장되는 값이 아니라 표시 방식에만 영향을 주는 속성입니다. 또한 MySQL 8.0.17부터는 정수 타입의 표시 폭과 ZEROFILL이 더 이상 권장되지 않으므로(deprecated), 새 프로젝트에서는 LPAD() 함수 등을 활용하는 것이 좋습니다.