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

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


当前回答

虽然这个答案不太可能出现,但我认为有必要进行以下澄清:

the (n) behind an integer data type in MySQL is specifying the display width the display width does NOT limit the length of the number returned from a query the display width DOES limit the number of zeroes filled for a zero filled column so the total number matches the display width (so long as the actual number does not exceed the display width, in which case the number is shown as is) the display width is also meant as a useful tool for developers to know what length the value should be padded to

A BIT OF DETAIL the display width is, apparently, intended to provide some metadata about how many zeros to display in a zero filled number. It does NOT actually limit the length of a number returned from a query if that number goes above the display width specified. To know what length/width is actually allowed for an integer data type in MySQL see the list & link: (types: TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT); So having said the above, you can expect the display width to have no affect on the results from a standard query, unless the columns are specified as ZEROFILL columns OR in the case the data is being pulled into an application & that application is collecting the display width to use for some other sort of padding.

主要参考资料:https://blogs.oracle.com/jsmyth/entry/what_does_the_11_mean

其他回答

根据这本书:

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

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 四位数字的宽度。

在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