SQL에 자료형의 종류가 많은 이유
: 각 행이 추가될 때마다 자료형만큼의 공간이 할당되기 때문에
필요 이상으로 큰 자료형이 사용되면 저장공간이 낭비됨.
자료형 | Byte | SIGNED | UNSIGNED | 개수 |
---|---|---|---|---|
TINYINT | 1 | -128~127 | 0~255 | 2^8개 |
SMALLINT | 2 | -32,768 ~ 32,767 | 0 ~ 65,535 | 2^16개 |
MEDIUMINT | 3 | -8,388,608 ~ 8,388,607 | 0 ~ 16,777,215 | 2^24개 |
INT | 4 | -2,147,483,648 ~ 2,147,483,647 | 0 ~ 4,294,967,295 | 2^32개 |
BIGINT | 8 | -2^63 ~ 2^63 - 1 | 0 ~ 2^64 - 1 | 2^64개 |
DECIMAL(s, d)
FLOAT
: 4ByteDOUBLE
: 8Byte자료형 | 설명 | Byte | 최대Byte |
---|---|---|---|
CHAR(s) | 고정크기(남는 글자수는 스페이스로 채움) | sByte(고정값) | 255Byte |
VARCHAR(s) | 가변크기 | 실제 글자수(최대s) + 1Byte(글자수 정보) | 65,535Byte |
ex)
문자열 | CHAR(4) | Byte | VARCHAR(4) | Byte |
---|---|---|---|---|
'ab' | 'ab ' | 4Byte | 'ab' | 3Byte |
'abcd' | 'abcd' | 4Byte | 'abcd' | 5Byte |
'abcdef' | 'abcd' | 4Byte | 'abcd' | 5Byte |
자료형 | 최대Byte |
---|---|
TINYTEXT | 255Byte |
TEXT | 65,535Byte |
MEDIUMTEXT | 16,777,215Byte |
LONGTEXT | 4,294,967,295Byte |
자료형 | 형식 | 설명 |
---|---|---|
DATE | YYYY-MM-DD | |
TIME | HHH:MM:SS | |
DATETIME | YYYY-MM-DD HHH:MM:SS | 입력된 시간을 문자 그대로 저장, 8Byte |
TIMESTAMP | YYYY-MM-DD HHH:MM:SS | MYSQL이 설치된 컴퓨터의 시간대를 기준으로 저장, 4Byte |