11.2.1INTegertypes(exactvalue )- INTEGER,int,SMALLINT,TINYINT,MEDIUMINT,BIGINT
首先,应该充分理解字节的概念。 1字节为8位),1位存储0或1
从上图可以明显看出
1 ) tinyint )存储器所占的1字节,1字节为8bit。 1bit可以存储0到1的两种可能性。 因此,tinyint类型可以包含2的8次方,即256种可能性。 从0开始计数,可以存储无符号,即0到255。 有符号时可以存储-128~127。
2 ) smallint )可以存储内存占用的2字节,同上,也就是2的16次方,也就是65536种可能性。 无符号可以存储0到0到0~65535,有符号为- 32768到32767。
3 )媒体)存储所占用的3个字节,即2的24次方,可以存储16777216种可能性。 无符号可存储0~16777215,有可存储-8388608~8388607的符号。
4 ) int )存储器所占的4个字节,即2的32次方,可以存储4294967296种可能性。 无符号可存储0~4294967295,有符号为-2147483648~2147483647。
5 )字节)存储的8个字节(即,2的64次幂)可以存储2的64次可能性。 (无符号为0 (() ) ) ) ) ) ) ) ) ) ) ) 2)-1 ),有符号为- ) ) )
【note】
1、我们常见的表格定义: int(11 )、int (2)是什么意思呢?
实际上括号内的数字表示最大显示宽度。 此数字与存储大小及其类型没有任何关系。 也就是说,int(11 )和int )都包含4个字节,不会因括号内的数字而改变。 这个数字只是表示最大宽度。
的最大宽度。 实际上,一个数字显示为多少位,缺少的数字在其开头添加0。例如,int(3)存储3显示为003; int )5)存储器23表示为00023。
2、注意: mysql文档注明,当mysql生成几个复杂联接(join )的临时表时,可能会出现问题。 这是因为mysql信任所有值都适合原始列宽。