mySQL数据类型 - 为什么在int之后有一个数字:int(11)

时间:2011-04-21 21:24:08

标签: mysql types

根据mySQL Docs,int(signed)的数据类型的范围是-2147483648到2147483647.当我使用phpMyAdmin创建一个表,并导出表结构时,它显示以下内容:

`unit_id` int(11) NOT NULL

为什么(11)?不int告诉mySQL它需要知道的一切吗?

2 个答案:

答案 0 :(得分:17)

这是可选的'width'属性,应用程序可以使用它来显示值。

引用documentation

  

MySQL支持扩展,可选择指定显示   base关键字后括号中的整数数据类型的宽度   对于类型。例如,INT(4)指定带有显示的INT   宽度为四位数。可选的显示宽度可以使用   应用程序显示宽度小于的宽度值   通过用空格左边填充为列指定的宽度。 (那   是,此宽度存在于结果集返回的元数据中。   是否使用取决于应用程序。)

     

显示宽度约束可以的值范围   存储在列中。它也不会阻止比列宽的值   正确显示显示宽度。例如,一列   指定为SMALLINT(3)-32768范围通常为SMALLINT   32767,以及三位数允许范围之外的值   使用三位数以上完整显示。

答案 1 :(得分:5)

设置结果集返回的显示宽度。它与存储容量无关。