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

MySQL에서 열 값 앞에 000을 채우는 방법 (ZEROFILL 활용법)

MySQL에서 열 값에 000을 추가하는 방법

MySQL에서 숫자 값 앞에 000을 채워 고정된 자릿수로 표시하려면 ZEROFILL 속성을 사용하면 됩니다. ZEROFILL은 열에 설정된 표시 폭(display width)보다 자릿수가 부족할 때, 남는 공간을 자동으로 0으로 채워주는 기능입니다.

먼저 예제 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1913
    (
    Code int(4) ZEROFILL AUTO_INCREMENT NOT NULL,
    PRIMARY KEY(Code)
    );
Query OK, 0 rows affected (0.00 sec)

위 코드에서 int(4) ZEROFILL은 값을 항상 4자리로 표시하겠다는 의미이며, 부족한 자릿수는 앞쪽에 0이 채워집니다.

레코드 삽입하기

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

mysql> insert into DemoTable1913 values(1);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1913 values(2);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1913 values(3);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1913 values(4);
Query OK, 1 row affected (0.00 sec)

결과 확인하기

select 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select * from DemoTable1913;

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

+------+
| Code |
+------+
| 0001 |
| 0002 |
| 0003 |
| 0004 |
+------+
4 rows in set (0.00 sec)

출력 결과를 보면 모든 값이 4자리로 표시되고, 빈 자릿수가 0으로 채워진 것을 확인할 수 있습니다. 실제 저장된 값은 여전히 정수 1, 2, 3, 4이며, ZEROFILL은 화면에 표시되는 형식에만 영향을 줍니다.

참고: MySQL 8.0 이상 버전을 사용하는 경우

MySQL 8.0부터는 정수 타입의 표시 폭과 ZEROFILL 속성이 공식적으로 지원 중단(deprecated) 상태입니다. 따라서 새 프로젝트에서는 테이블 구조를 변경하지 않고 조회 시점에 0을 채워주는 LPAD() 함수를 사용하는 것이 좋습니다.

SELECT LPAD(Code, 4, '0') AS Code FROM DemoTable1913;

이 방식은 기존 테이블을 수정할 필요 없이 원하는 자릿수만큼 유연하게 0을 채울 수 있다는 장점이 있습니다.