在 MySQL 中,INT(11) 中的 11 并不是表示整数能存储的最大位数,而是与显示宽度有关。
INT(11) 的含义
显示宽度: INT(11) 中的 11 指的是显示宽度(display width),表示 MySQL 在显示该整数值时,尝试填充的宽度。它与实际存储大小无关。
存储大小: INT 类型在 MySQL 中始终占用 4 个字节,存储范围是固定的,不会因为 11 而改变。
显示宽度的作用
零填充(Zerofill): 显示宽度通常与 ZEROFILL 属性结合使用。如果列定义为 INT(11) ZEROFILL,则存储在该列中的值会在左侧填充零以达到指定的宽度。例如,存储值 123 会显示为 00000000123。
CREATE TABLE example (
id INT(11) ZEROFILL
);
在这个表中,id 列被定义为 INT(11) ZEROFILL,如果插入值 123,查询结果会显示为 00000000123。