mysql 整型的显示宽度
2012年8月4日
没有评论
mysql数据库中对整型分为5个不同的小类型,分别是tinyint、smallint、mediumint、int和bigint,主要区别是数据库存储时使用几个字节,也就是说限定整数的范围,上述类型存储使用的字节为1、2、3、4和8。取值范围可以根据字节数来算出来。注意:它们都可以指定为无符号(大于等于零)的整数。
在使用时候往往在类型后面会用括号指定一个数字,该值的含义是表明显示宽度,对数值的范围是无关的。例如tinyint(1),tinyint(3)存储的数值范围都是-128到127。如果使用了zerofill,在显示的时候才有可能不一样。例如:
create table netingcn_test1(a tinyint(1), b tinyint(2)); insert into netingcn_test1 values(1,1),(100,100); select * from netingcn_test1; +------+------+ | a | b | +------+------+ | 1 | 1 | | 100 | 100 | +------+------+
上述例子可以看到tinyint(1),tinyint(2)没有任何区别,下面使用zerofill来看看是什么情况:
create table netingcn_test2(a tinyint(1) zerofill, b tinyint(2) zerofill); insert into netingcn_test2 values(1,1),(100,100); select a,b,bin(a),bin(b) from netingcn_test2; +------+------+---------+---------+ | a | b | bin(a) | bin(b) | +------+------+---------+---------+ | 1 | 01 | 1 | 1 | | 100 | 100 | 1100100 | 1100100 | +------+------+---------+---------+
可以看到当结果小于显示宽度时,左边用0补齐,当等于或超过显示宽度时正常显示,通过bin函数可以得知数据存储值都是一样的。