- M和数据类型的取值范围是无关的
- M只是指明MYSQL最大可能显示的数字个数,数值的位数小于M时会有空格填充;大于M时,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能显示出来
- M的效果需要配合zerofill使用
Mysql整数类型及存储范围
一个字节(Byte) 等于8个位(bit) 一个位就代表一个0或1
即一个字节最大值等于二进制11111111,转为十进制即为2的8次方减1,值为255
类型 字节 最小值 最大值
TinyInt(有符号) 1 -128 127
TinyInt(无符号) 1 0 255
SmallInt(有符号) 2 -32768 32767
SmallInt(无符号) 2 0 65535
MediumInt(有符号) 3 -8388608 8388607
MediumInt(无符号) 3 0 16777215
Int(有符号) 4 -2147483648 2147483647
Int(无符号) 4 0 4294967295
BigInt(有符号) 8 -9223372036854775808 9223372036854775807
BigInt(无符号) 8 0 18446744073709551615
显示宽度解释:
- 创建一个字段:
newInt
int(3) unsigned NOT NULL DEFAULT ‘0’,
继续创建一个:newInts
int(3) unsigned zerofill NOT NULL DEFAULT ‘000’, 插入一条数据 values(123456,123456)
继续长如数据 values(3,3)M和数据类型的取值范围是无关的
- M只是指明MYSQL最大可能显示的数字个数,数值的位数小于M时会有空格填充;大于M时,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能显示出来
- M的效果需要配合zerofill使用