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 |
Mysql类型关键字后面的括号内常常带一个整数 例如int(M), M表示显示宽度
显示宽度解释:
1.
创建一个字段:`newInt` int(3) unsigned NOT NULL DEFAULT '0',
继续创建一个:`newInts` int(3) unsigned zerofill NOT NULL DEFAULT '000',
2.
插入一条数据 values(123456,123456)
继续长如数据 values(3,3)
3.
浏览数据
从上图可以一目了然的得出如下结论:
1. M和数据类型的
取值范围是无关的
2. M只是指明MYSQL最大可能显示的数字个数,数值的
位数小于M时会有空格填充;大于M时,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能显示出来
2. M的效果需要
配合zerofill使用