반응형
MySQL의 tinyint, int, bigint, decimal 등 자료형(숫자)에 대해
MySQL에서 int(10)이면 10 자릿수를 입력한다고 생각할 수 있지만 그렇지 않습니다.
bigint(20)도 20 자릿수 입력이 아닙니다.
decimal(10,0)가 10 자릿수 입력입니다.
각각의 숫자가 허용하는 값은 다음과 같습니다.
숫자 (NUMERIC)
자료형 | 바이트 | 최소치 | 최대치 |
TINYINT | 1 | -128 | 127 |
SMALLINT | 2 | -32768 | 32767 |
MEDIUMINT | 3 | -8388608 | 8388607 |
INT | 4 | -2147483648 | 2147483647 |
BIGINT | 8 | -9223372036854775808 | 9223372036854775807 |
DECIMAL |
가변 최대 65자리 |
DECIMAL(5)의 경우: -99999 ~ 99999 | |
DECIMAL(5, 1)의 경우: -9999.9 ~ 9999.9 | |||
DECIMAL(5, 2)의 경우: -999.99 ~ 999.99 | |||
FLOAT | 4 | -3.402823466×10^38 | 3.402823466×10^38 |
DOUBLE | 8 | -1.7976931348623157×10^308 | 1.7976931348623157×10^308 |
BIT | 가변 최대 64비트 |
이진 데이터 자료형 1비트에서 64비트까지 허용 크기를 지정하지 않으면 1비트(0 또는 1) |
|
REAL | DOUBLE이 적용됨 | ||
BOOL BOOLEAN |
TINYINT(1)이 적용됨 | ||
SERIAL | BIGINT(20)이 적용됨 |
그럼 int(10)의 10이란 무엇인가라고 하면 이것은 ZEROFILL지정 시의 자릿수입니다.
예시 : 0000000001
ZEROFILL 지정하면 이전 영을 채워줍니다.
1을 넣으면 "0000000001"입니다. ZEROFILL 지정하지 않으면 int(10)도 bigint(20)도 의미가 없는 숫자입니다.
반응형
댓글