[TIL] Mysql Int() 괄호 안 숫자의 의미

김은혁·2022년 11월 18일
0

Mysql에서는 데이터 타입을 선언할 때 괄호 안에 자릿수를 선언한다. (20)이면 20자리, (100)이면 100자리까지 넣겠다는 의미이다. 하지만 int나 bigint에서는 괄호 안의 숫자는 Zerofill이라는 옵션을 추가로 사용할 때만 의미가 있다. 그것이 무슨 이야기인지 테스트를 해보았다.

CREATE TABLE test (
	int_1 INT(1),
    zero_1 INT(1) ZEROFILL,
    int_5 INT(5),
    zero_5 INT(5) ZEROFILL,
    int_11 INT(11),
    zero_11 INT(11) ZEROFILL
);

Zerofill 옵션을 설정한 필드와 그렇지 않은 필드들의 자릿수를 다르게 하여 선언하였다.

INSERT INTO test VALUES (1, 1, 1, 1, 1, 1);
INSERT INTO test VALUES (12345, 12345, 12345, 12345, 12345, 12345);
INSERT INTO test VALUES (1234567890, 1234567890, 1234567890, 1234567890, 1234567890, 1234567890);

테스트할 데이터를 여러 개 넣고 확인을 해보았다.

SELECT * FROM test;

Zerofill 옵션은 입력된 값의 자릿수를 일관되게 맞추려는 목적으로 사용되고 해당 컬럼에 입력된 값의 자릿수가 지정된 자릿수보다 작다면 좌측부터 0으로 채워진다. 지정한 자릿수보다 크다면 아무런 영향을 받지 않는다.

0개의 댓글

관련 채용 정보