1. 숫자(NUMERIC)
- TINYINT: 1바이트, signed -128~127, unsigned 0~255
- SAMLLINT: 2바이트, signed -32768~32767, unsigned 0~65535
- MEDIUMINT: 3바이트, signed -8388608~8388607, unsigned 0~16777215
- INT: 4바이트, signed -2147483648~2147483647, unsigned 0~4294967295
- BIGINT: 8바이트, signed -9223372036854775808~9223372036854775807, unsigned 0~18446744073709551615
- DECIMAL: 고정소수점, 전체자리수(precision)와 소수점자리수(scale)를 가짐, 가변 길이를 가짐, 최대 65자리(precision) 수
- ex) DECIMAL(5): -99999~99999
- ex) DECIMAL(5, 1): -9999.9~9999.9
- FLOAT: 유동소수점, 4바이트, 유효숫자 10자리, 3.402823466×10^(38) ~ 3.402823466×10^(38)
- DOUBLE: 유동소수점, 8바이트, 유효숫자 17자리, 1.7976931348623157×10^(308) ~ 1.7976931348623157×10^(308)
- BIT: 가변길이, 최대 64비트
- REAL: 실수, DOUBLE이 적용됨
- BOOL, BOOLEAN: TINYINT(1)이 적용됨
- SERIAL: BIGINT(20)이 적용됨
2. 날짜(DATE), 시간(TIME)
- DATE: 0000-00-00 ~ 9999-12-31
- DATETIME: 0000-00-00 00:00:00 ~ 9999-12-31 23:59:59
- TIMESTAMP: 1970-01-01 00:00:00 이후로 지난 초
- TIME: -838:59:59 ~ 838:59:59
- YEAR: 1901 ~ 2155
3. 문자열(STRING)
- CHAR: 고정길이 문자열. 0~255 지정 가능
- VARCHAR: 가변길이 문자열. 0~65,535 지정 가능
- TINYTEXT: 255바이트. 가변길이 문자열. 문자 데이터 저장에 유리
- TEXT: 64 KiB = 65,535바이트
- MEDIUMTEXT: 16 MiB = 16,777,215바이트
- LONGTEXT: 4 GiB = 4,294,967,295바이트
- TINYBLOB: 255바이트. 가변길이 문자열. 바이너리 데이터 저장에 유리
- MEDIUMBLOB: 16 MiB
- BLOB: 64 KiB. 가변길이 문자열
- LONGBLOB: 8,192 KiB
- BINARY
- VARBINARY
- ENUM
- SET
4. 공간(SPATIAL)
- GEOMETRY
- POINT
- LINESTRING
- POLYGON
- MULTIPOINT
- MULTILINESTRING
- ULTIPOLYGON
- GEOMETRYCOLLECTION
5. JSON
- 버전 5.7 부터 지원 시작
- JSON 데이터 자동 검증 가능
참고
mysql 공식 document를 참고하였음