MySQL中的数据类型占用空间和范围
数据类型 | 描述 | 占用空间 | 最大值~最小值 (SIGNED) | 最大值~最小值 (UNSIGNED) |
TINYINT | 微整数 | 1 byte | -128 ~ 127 | 0 ~ 255 |
SMALLINT | 小整数 | 2 bytes | -32768 ~ 32767 | 0 ~ 65535 |
MEDIUMINT | 中等整数 | 3 bytes | -8388608 ~ 8388607 | 0 ~ 16777215 |
INT 或 INTEGER | 整数 | 4 bytes | -2147483648 ~ 2147483647 | 0 ~ 4294967295 |
BIGINT | 大整数 | 8 bytes | -9223372036854775808 ~ 9223372036854775807 | 0 ~ 18446744073709551615 |
FLOAT | 单精度浮点数 | 4 bytes | -3.40282347E+38 ~ 3.40282347E+38 | 0 ~ 3.40282347E+38 |
DOUBLE | 双精度浮点数 | 8 bytes | -1.7976931348623157E+308 ~ 1.7976931348623157E+308 | 0 ~ 1.7976931348623157E+308 |
DECIMAL(M,D) | 精确小数,M为总位数,D为小数位 | M+2字节 | 取决于M和D | 取决于M和D |
DATE | 日期 | 3 bytes | 0000-01-01 ~ 9999-12-31 | 0000-01-01 ~ 9999-12-31 |
TIME | 时间 | 3 bytes | -838:59:59 ~ 838:59:59 | 00:00:00 ~ 838:59:59 |
DATETIME | 日期时间 | 5 bytes | 0000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | 0000-01-01 00:00:00 ~ 9999-12-31 23:59:59 |
TIMESTAMP | 时间戳 | 4 bytes | 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC | 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC |
YEAR | 年份 | 1 byte | 1901 ~ 2155 | 1901 ~ 2155 |
CHAR(M) | 固定长度字符串 | M bytes | 空字符串 ~ M字符字符串 | 空字符串 ~ M字符字符串 |
VARCHAR(M) | 可变长度字符串 | 长度 + 1 byte | 空字符串 ~ M字符字符串 | 空字符串 ~ M字符字符串 |
TINYTEXT | 小文本 | 长度 + 1 byte | 空字符串 ~ 255字符字符串 | 空字符串 ~ 255字符字符串 |
TEXT | 文本 | 长度 + 2 bytes | 空字符串 ~ 65,535字符字符串 | 空字符串 ~ 65,535字符字符串 |
MEDIUMTEXT | 中等文本 | 长度 + 3 bytes | 空字符串 ~ 16,777,215字符字符串 | 空字符串 ~ 16,777,215字符字符串 |
LONGTEXT | 大文本 | 长度 + 4 bytes | 空字符串 ~ 4,294,967,295字符字符串 | 空字符串 ~ 4,294,967,295字符字符串 |
BINARY(M) | 固定长度二进制字符串 | M bytes | 空字符串 ~ M字节字符串 | 空字符串 ~ M字节字符串 |
VARBINARY(M) | 可变长度二进制字符串 | 长度 + 1 byte | 空字符串 ~ M字节字符串 | 空字符串 ~ M字节字符串 |
TINYBLOB | 小BLOB | 长度 + 1 byte | 空二进制字符串 ~ 255字节 | 空二进制字符串 ~ 255字节 |
BLOB | BLOB | 长度 + 2 bytes | 空二进制字符串 ~ 65,535字节 | 空二进制字符串 ~ 65,535字节 |
MEDIUMBLOB | 中等BLOB | 长度 + 3 bytes | 空二进制字符串 ~ 16,777,215字节 | 空二进制字符串 ~ 16,777,215字节 |
LONGBLOB | 大BLOB | 长度 + 4 bytes | 空二进制字符串 ~ 4,294,967,295字节 | 空二进制字符串 ~ 4,294,967,295字节 |
ENUM('value1',...) | 枚举,预定义字符串列表中选择 | 1~2 bytes | 取决于枚举值 | 取决于枚举值 |
SET('value1',...) | 集合,预定义字符串列表中选择 | 1~8 bytes | 取决于集合值 | 取决于集合值 |
BIT(M) | 位字段 | M bits | 0 ~ 2^M - 1 | 0 ~ 2^M - 1 |
GEOMETRY | 空间几何数据类型 | 可变 | 取决于数据大小 | 取决于数据大小 |
POINT | 点类型 | 可变 | 取决于数据大小 | 取决于数据大小 |
LINESTRING | 线字符串类型 | 可变 | 取决于数据大小 | 取决于数据大小 |
POLYGON | 多边形类型 | 可变 | 取决于数据大小 | 取决于数据大小 |
JSON | JSON数据类型 | 可变 | 取决于JSON数据大小 | 取决于JSON数据大小 |