INT(256) 或任何其他整型字段如 INT, TINYINT, MEDIUMINT, BIGINT 后面的括号内的数字,并不表示字符个数或数字大小范围。 int(256)——这个括号内的数字实际上是对列的显示宽度进行指定的,也就是说,它影响的是数据在被SELECT时的输出格式,而不是存储数据的实际大小或长度。
例如,当你定义一个 INT(256) 字段时,MySQL会尝试在查询结果中为该字段预留256个字符的宽度用于显示。但是,这并不意味着你可以存储一个超过 INT 数据类型所能支持的最大值的数字。INT 类型的范围通常是 -2147483648 到 2147483647,而 INT(256) 依然只能在这个范围内存储数据。
如果你试图存储一个超出 INT 类型范围的数值,你会得到一个错误,而不会因为定义了更大的显示宽度就能存储更大的数值。
对于整型数据的大小范围,你可以参考以下标准:
TINYINT:-128 到 127 或 0 到 255(无符号)SMALLINT:-32768 到 32767 或 0 到 65535(无符号)MEDIUMINT:-8388608 到 8388607 或 0 到 16777215(无符号)INT 或 INTEGER:-2147483648 到 2147483647 或 0 到 4294967295(无符号)BIGINT:-9223372036854775808 到 9223372036854775807 或 0 到 18446744073709551615(无符号)如果需要存储更大的数值,应该选择更宽的数据类型,如 BIGINT。如果主要关心的是显示宽度,那么可以调整这个括号内的数字,但这不会改变存储的数值范围。
参考来源于:通义千问2.5