MySQL设置数值型列时,需要考虑到数值的范围,所以,数值类型就必然需要考虑,以下为MySQL数值类型的存储长度,当然存储长度基本决定着其值域范围。本文节选自MySQL官方网站,仅做汇总摘要整理。
一、TINYINT
1个字节存储,范围有符号-128-127,无符号0-255。还有一个类型是BOOL型,相当于TINYINT(1)。
二、SMALLINT
2个字节存储,范围带符号的范围是-32768到32767。无符号的范围是0到65535。
三、MEDIUMINT
3个字节存储,范围带符号的范围是-8388608到8388607。无符号的范围是0到16777215。
四、INT, INTEGER
4个字节存储,范围带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。
五、BIGINT
8个字节存储,范围带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。
六、FLOAT(p)
如果0 <= p <= 24为4个字节, 如果25 <= p <= 53为8个字节
七、FLOAT
4个字节存储,范围允许的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。
八、DOUBLE [PRECISION]
8个字节存储,范围允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308。
九、DECIMAL(M,D), NUMERIC(M,D)
压缩的“严格”定点数,变长类型。M是小数位数(精度)的总数,D是小数点(标度)后面的位数。小数点和(负数)的‘-’符号不包括在M中。如果D是0,则值没有小数点或分数部分。DECIMAL整数最大位数(M)为65。支持的十进制数的最大位数(D)是30。如果D被省略, 默认是0。如果M被省略, 默认是10。如果指定UNSIGNED,不允许负值。
十、BIT(M)
大约(M+7)/8个字节存储,M表示每个值的位数,范围为从1到64。如果M被省略, 默认为1。