在mysql中int(11)的列的大小是多少?

和可以存储在这些列中的最大值?


当前回答

INT(x)只会在显示方面有所不同,即以x位数显示数字,而不限于11。您使用ZEROFILL对它进行配对,它将在0的前面,直到它匹配您的长度。

对于INT(x)中的任意个数的x

如果存储值的数字小于x,则ZEROFILL将在0的前面。

INT(5)存储值为32的ZEROFILL将显示00032 存储值为32的INT(5)将显示32 INT的存储值为32将显示32

如果存储值的数字比x多,它将按原样显示。

INT(3)存储值为250000的ZEROFILL将显示250000 存储值为250000的INT(3)将显示250000 存储值为250000的INT将显示250000

存储在数据库中的实际值不受影响,大小仍然相同,任何计算都将正常进行。

这也适用于BIGINT, MEDIUMINT, SMALLINT和TINYINT。

其他回答

在mysql中int(11)的列的大小是多少?

(11) - int数据类型的这个属性与列的大小无关。它只是整数数据类型的显示宽度。从11.1.4.5。属性:

MySQL支持可选地指定显示的扩展 base关键字后面括号中的整数数据类型的宽度 对于类型。例如,INT(4)指定带显示的INT 四位数字的宽度。

根据这里,int(11)将占用4个字节的空间,即2^(31)= 2147483648 max值和-2147483648min值的32位空间。一位是符号。

在MySQL中,整数int(11)的大小为4字节,等于32位。

带符号的值是-2的32-1次方到0到2的32-1次方-1 = -2147483648到0到2147483647

无符号值是:0到2^32-1 = 0 ~ 4294967295

4294967295是答案,因为int(11)显示最多11位数字IMO

根据这本书:

MySQL允许您为整数类型指定一个“宽度”,例如INT(11)。 对于大多数应用程序来说,这是没有意义的:它没有限制 合法的值范围,但只是指定字符的数量 MySQL的交互工具将保留用于显示目的。为 为了存储和计算目的,INT(1)与INT(20)是相同的。