MySQL 자료형
숫자형
- 정수형
구분 | 크기 | 범위 | 설명 |
---|
BIT(M) | M/8 byte | 0 or 1 | M의 크기만큼 0/1 binary값 저장 |
BOOL | 1 byte | | 0 = false 나머지는 true |
ENUM(Y,N) 또는 TINYINT(1) 사용을 권장한다. | | | |
TINYINT(M) | 1 byte | -128 ~ 127 | |
0 ~ 255 | 부호의 유무에 따라 범위가 다름 | | |
SMALLINT(M) | 2 byte | -32000 ~ 32000 | |
0 ~ 65000 | 부호 유무에 따라 범위가 다름 | | |
MEDIUMINT(M) | 3 byte | -8300000 ~ 8300000 | |
0 ~ 16700000 | 부호 유무에 따라 범위가 다름 | | |
INT/INTEGER(M) | 4 byte | -2100000000 ~ 2100000000 | |
0 ~ 4200000000 | 부호 유무에 따라 범위가 다름 | | |
BIGINT(M) | 8 byte | -920000000000000000000 ~ 920000000000000000000 | |
0 ~ 18000000000000000000 | 부호 유무에 따라 범위가 다름 | | |
| | | |
- 고정소수점
구분 | 크기 | 범위 | 설명 |
---|
DEMICAL(M,D)NUMBERIC | 5~17 byte | -10^M ~ 10^M | M자리 정수와 D자리 소수점으로 표현 최대 65자리 |
DOUBLE REAL | 8 byte | -1.22E ~ 1.79E | 소수점 아래 15자리까지 표현 |
- 부동소수점
구분 | 크기 | 범위 | 설명 |
---|
FLOAT(M,D) | 4 byte | | |
DOUBLE(M,D) | 8 byte | | |
Demical은 정확한 수치를 저장하지만, Float과 Double은 근사치를 저장한다. 대신 큰 숫자를 저장할 수 있다.
문자형
구분 | 크기 | 범위 | 설명 |
---|
CHAR(M) | 1~255 byte | 문자열 | 고정길이 문자열 |
VARCHAR(M) | 1 ~ 65535 byte | 문자열 | 가변길이 문자열 |
BINARY(M) | 1 ~ 255 byte | 0/1 | 고정길이 binary 데이터 |
VARBINARY(M) | 1 ~ 255 byte | 0/1 | 가변길이 binary 데이터 |
TINYBLOB / TINYTEXT | 1 ~ 255 byte | BLOB / TEXT | 255 크기의 데이터 |
BLOB / TEXT | 1 ~ 65535 byte | BLOB / TEXT | 최대 65535개의 가변길이 데이터 |
MEDIUMBLOB / MEDIUMTEXT | 1 ~ 16777215 byte | BLOB / TEXT | 최대 16777215 크기의 가변길이 데이터 |
LONGBLOB / LONGTEXT | 1 ~ 4294967295 byte | BLOB / TEXT | 최대 2494967 크기의 가변길이 데이터 |
ENUM | 1 ~ 2 byte | 문자열 | 문자열인 value를 숫자로 저장 |
SET | 1, 2, 3, 4, 8 byte | 문자열 | 문자열을 정수값으로 매핑하여 저장 |
날짜형
구분 | 크기 | 범위 | 설명 |
---|
DATE | 3 byte | 1000년 ~ 9999년 | 년 월 일 표현 |
DATETIME | 8 byte | 1000년 ~ 9999년 | 년 월 일 시 분 초 |
TIMESTAMP | 4 byte | 1970년 ~ 2037년 | 년 월 일 시 분 초 (INSERT, UPDATE에 유리) |
TIME | 3 byte | -838:59:59 ~ 838:59:59 | 시 분 초 |
YEAR | 1 byte | 1901 ~ 2155 | |
1970 ~ 2069 | 년 | | |