【发布时间】:2011-04-21 21:24:08
【问题描述】:
根据mySQL Docs,int (signed) 数据类型的范围为 -2147483648 到 2147483647。当我使用 phpMyAdmin 创建表并导出表结构时,它显示如下:
`unit_id` int(11) NOT NULL
为什么是 (11)? int 不会告诉 mySQL 它需要知道的一切吗?
【问题讨论】:
根据mySQL Docs,int (signed) 数据类型的范围为 -2147483648 到 2147483647。当我使用 phpMyAdmin 创建表并导出表结构时,它显示如下:
`unit_id` int(11) NOT NULL
为什么是 (11)? int 不会告诉 mySQL 它需要知道的一切吗?
【问题讨论】:
这是可选的“宽度”属性,应用程序可以使用它来显示值。
MySQL 支持扩展以可选地指定显示 base 关键字后面括号中整数数据类型的宽度 对于类型。例如,
INT(4)指定带有显示的INT四位数的宽度。这个可选的显示宽度可以由 应用程序来显示宽度小于 通过用空格向左填充它们为列指定的宽度。 (那 也就是说,这个宽度存在于与结果集一起返回的元数据中。 是否使用取决于应用程序。)显示宽度不限制了可以显示的值的范围 存储在列中。它也不会阻止比列更宽的值 显示宽度无法正确显示。例如,一列 指定为
SMALLINT(3)具有通常的SMALLINT范围-32768到32767,三位数允许范围之外的值为 使用三个以上的数字完整显示。
【讨论】:
varchar(100)...学到了新的事实:)
设置与结果集一起返回的显示宽度。它与存储大小无关。
【讨论】: