整数类型(精确值)
类型 |
存储(字节) |
有符号的最小值 |
最小值无符号 |
最大值有符号 |
最大值无符号 |
TINYINT |
1 |
-128 |
0 |
127 |
255 |
SMALLINT |
2 |
-32768 |
0 |
32767 |
65535 |
MEDIUMINT |
3 |
-8388608 |
0 |
8388607 |
16777215 |
INT |
4 |
-2147483648 |
0 |
2147483647 |
4294967295 |
BIGINT |
8 |
-263 |
0 |
263-1 |
264-1 |
定点类型(精确值)
DECIMAL、NUMERIC
浮点类型(近似值)
类型名称 |
说明 |
存储 |
FLOAT |
单精度浮点数 |
4 个字节 |
DOUBLE |
双精度浮点数 |
8 个字节 |
DECIMAL (M, D),DEC |
压缩的“严格”定点数 |
M+2 个字节 |
位值类型
BIT数据类型被用于存储比特值。一种类型 启用存储位值。 范围从 1 到 64。 BIT(M) M要指定位值, 可以使用符号。
类型名称 |
说明 |
存储需求 |
BIT(M) |
位字段类型 |
大约 (M+7)/8 字节 |
BINARY(M) |
固定长度二进制字符串 |
M 字节 |
VARBINARY (M) |
可变长度二进制字符串 |
M+1 字节 |
TINYBLOB (M) |
非常小的BLOB |
L+1 字节,在此,L<2^8 |
BLOB (M) |
小 BLOB |
L+2 字节,在此,L<2^16 |
MEDIUMBLOB (M) |
中等大小的BLOB |
L+3 字节,在此,L<2^24 |
LONGBLOB (M) |
非常大的BLOB |
L+4 字节,在此,L<2^32 |
超出范围和溢出处理
- 如果启用了严格的 SQL 模式,MySQL 会根据 SQL 标准拒绝超出范围的值并显示错误,插入失败。
- 如果没有启用限制模式,MySQL 会将值剪辑到列数据类型范围的适当端点并存储结果值。当超出范围的值分配给整数列时,MySQL 存储表示列数据类型范围的相应端点的值。当为浮点或定点列分配的值超出指定(或默认)精度和小数位数所隐含的范围时,MySQL 存储表示该范围对应端点的值。