MySQL 数据类型
整数类型 | 字节数 | 无符号数范围 | 有符号数范围 | 默认显示长度 |
---|---|---|---|---|
TINYINT | 1 | 0~255 | -128~127 | 00000000004 |
SMALLINT | 2 | 0~65535 | -32768~32767 | 6 |
MEDIUMINT | 3 | 0~16777215 | -8388608~8388607 | 9 |
INT | 4 | 0~4294967295 | -2147483648 ~ 2147483647 | 11 |
INTEGER | 4 | 0~4294967295 | -2147483648 ~ 2147483647 | 11 |
BIGINT | 8 | 0 ~ 18446744073709551615 | -9223372036854775808 ~ 9223372036854775807 | 20 |
默认显示宽度是其有符号数的最大长度:例 TINYINT 最小为 -128 ,四位。但是储存长度大于设置的宽度时,数字也可以显示出来。
可以搭配使用zerofill参数,当数字不足的时候使用0来填补(使用了zerofill参数之后,会自动给类型加上UNSIGNED属性)
浮点与定点 | 字节数 | 负数范围 | 非负数范围 |
---|---|---|---|
FLOAT(浮点数) | 4 | -3.402823466E+38 ~ -1.17549436E-38 | 0和1.175494351E-38 ~ -3.402823466E+38 |
DOUBLE(浮点数) | 8 | -1.7976931348623157E+308~ -2.2250738585072014E-308 | 0和2.2250738585072014E-308 ~1.7976931348623157E+308 |
DECIMAL(M,D)(定点数) | M+2 | 同DOUBLE | 同DOUBLE |
注意点:
DECIMAL(M,D)表示:
小数点之后长度为D,总长度为M.
DECIMAL类型使用字符串类型保存,精度比浮点数高。定点数的小数精度和浮点数的标准不一样,有可能影响数据库转移。四舍五入时,DECIMAL会有警报。