一尘不染

int(11)与int(其他)

mysql

我是Web编程的新手,正在做可以在网上找到的各种教程。

我做了研究,发现在int(11)中,11是整数的最大显示宽度,如果整数是UNSIGNED(在本例中为10),则它是默认值。

当我看到这样的东西:

id INT(11) not null AUTO_INCREMENT

我没问题 但是,为什么在不同的教程中看到不同的东西?例如,在某些情况下,

id INT(10) not null AUTO_INCREMENT

乃至

id INT(4) not null AUTO_INCREMENT

这些tut的作者试图达到什么目的?他们似乎都不想去解释10或4的含义。

好了,它们显然正在减小显示宽度,但是为什么呢?默认宽度11有什么问题?他们为什么要更改它?还是有我不知道的其他原因?

谢谢。


阅读 342

收藏
2020-05-17

共1个答案

一尘不染

xINT(x)有无关空间要求或其他任何性能问题,它其实只是 显示宽度 。通常,使用该UNSIGNED ZEROFILL选项将显示宽度设置为合理的值最为有用。

//INT(4) UNSIGNED ZEROFILL
0001
0002 
...
0099
...
0999
...
9999
...
10000

//INT(2) UNSIGNED ZEROFILL
01
02 
...
09
...
99
...
100

如果没有该UNSIGNED ZEROFILL选项,则该值将用空格左填充到适当的显示宽度。

//INT(4)
   1
   2 
...
  99
...
 999
...
9999
...
10000

//INT(2)
 1
 2 
...
 9
...
99
...
100
2020-05-17