整数类型中,int和integer类型是一模一样的,取值范围通过字节数可以计算出来,比如tinyint,字节数为1,也就是8位。那么无符号数的取值范围就是(0~2的8次方减1),有符号数的最大值是2的7次方减一,其他的同理。

  mysql整形中各种类型所占用的字节数数固定的,但是mysql支持int(8)这种形式,这是什么呢?其实后面括号里面的数字表示的只是显示宽度,而不是字节数。如果定义时不指定显示宽度,则每种类型都会有自己的默认显示宽度

 

tinyint (4)

smallint(6)

mediumint(9)

int(11)

bigint(20)

  从中可以看出规律,就是默认宽度的数值就是各个类型中取值范围的最大值的宽度。但是不知道为什么mediumint默认宽度为9,按这个道理来说应该是8

当制定显示宽度,比如int(4)后,当插入数据宽度为3,比如123,则结果显示为“空123”,如果插入12345,可以没问题,显示结果为“12345”,但是超过11位宽度,则结果会显示这个类型的最大值

比如我插入123456789123456789,结果为“2147483647”  

posted on 2015-09-24 09:24  guols0612  阅读(547)  评论(0编辑  收藏  举报