> 数据库 > MySQL >

mysql 整型的显示宽度

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函数可以得知数据存储值都是一样的。

(责任编辑:IT)