MySQL int(11) 그리고 ZEROFILL
int(11), int(5) 다 같은 int 지만 ZEROFILL 옵션이 있는 데이터들은 자릿수가 괄호 안의 수보다 작을 때 자릿수를 다 0으로 채웁니다.
mysql> SHOW COLUMNS FROM zerofill_test;
+-------+---------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------------------+------+-----+---------+-------+
| a | int(11) | NO | | NULL | |
| b | int(11) unsigned zerofill | NO | | NULL | |
| c | int(5) | NO | | NULL | |
| d | int(5) unsigned zerofill | NO | | NULL | |
+-------+---------------------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
위와 같은 zerofill_test 테이블에 1, 1234567890, 123456 를 INSERT 하고 값 확인
mysql> SELECT * FROM zerofill_test;
+------------+-------------+------------+------------+
| a | b | c | d |
+------------+-------------+------------+------------+
| 1 | 00000000001 | 1 | 00001 |
| 1234567890 | 01234567890 | 1234567890 | 1234567890 |
| 123456 | 00000123456 | 123456 | 123456 |
+------------+-------------+------------+------------+
3 rows in set (0.00 sec)
zerofill 옵션이 있는 데이터 타입
TINYINT(M) [ 옵션 UNSIGNED , ZEROFILL ] ★★
: 정수형으로 총 1Byte 저장공간을 차지하는 데이터 타입으로 -128에서 127 사이의 숫자를 저장하기 위한 데이터 타입이다. UNSIGNED 옵션을 적용하면 0에서 255까지의 숫자를 저장한다.
SMALLINT(M) [ 옵션 UNSIGNED , ZEROFILL ]
: 정수형으로 총 2Byte 저장공간을 차지하는 데이터 타입으로 -32768에서 32767 사이의 숫자를 저장하기 위한 데이터 타입이다. UNSIGNED 옵션을 적용하면 0에서 65535까지의 숫자를 저장한다.
MEDIUMINT(M) [ 옵션 UNSIGNED , ZEROFILL ]
: 정수형으로 총 3Byte 저장공간을 차지하는 데이터 타입으로 -8388608에서 8388607사이의 숫자를 저장하기 위한 데이터 타입이다. UNSIGNED 옵션을 적용하면 0에서 16777215까지의 숫자를 저장한다.
INT(M) [ 옵션 UNSIGNED , ZEROFILL ] ★★★
: 정수형으로 총 4Byte 저장공간을 차지하는 데이터 타입으로 INTEGER 라고도 사용한다. -2147483648에서 2147483647 사이의 숫자를 저장하기 위한 데이터 타입으로 UNSIGNED 옵션을 적용하면 0에서 4294967295까지의 숫자를 저장한다.
TINYINT에 4자리 숫자를 넣으면 에러가 발생합니다.
그리고 각 숫자형은 저장하는 공간의 바이트가 다릅니다.
용량 관리면에서 중요합니다.
'MySQL' 카테고리의 다른 글
29. MySQL 트랜잭션(START TRANSACTION) (0) | 2021.07.23 |
---|---|
28. MySQL AUTO_INCREMENT 값 초기화 (0) | 2021.07.20 |
26. MySQL 테이블 생성 쿼리 보기 (0) | 2021.07.19 |
25. MySQL DB계정 생성, 권한 확인, 부여, 회수 쿼리 (0) | 2021.07.15 |
24. MySQL 컬럼 생성시 unsignde 선언의 의미 (0) | 2021.03.26 |