如何预测/计算MySQL中数值(INT)的字段长度?

时间:2010-02-05 09:19:12

标签: java php sql mysql database

在phpmyadmin中有一个你可以指定的字段长度,如果没有指定,通常在INT上设置为11。

  Field Name: ID
  Field Type: INT(11) // This is what I need to figure out!

如何计算长度,长度实际上代表什么?这是指多少位数?字节?

什么是无符号和签名与此有关?

由于

3 个答案:

答案 0 :(得分:1)

字段的类型(TINYINT,MEDIUMINT,INT等)确定可以放在此类字段中的整数的最大大小。无符号表示您只想存储大于零的数字。这是MySQL中数字类型的参考表以及它们的限制:MySQL Manual - Numeric Types

如果您将字段定义为无符号,则会获得相同数量的可能值,但它们不会在负数和正数之间拆分50-50,如表中所示。

括号中的数字是在字段上指定ZEROFILL时使用的数字 - 如果您需要用零填充一定长度的数字,这将非常有用。例如,如果您创建一个新字段为INT(5) ZEROFILL,它将为您显示其中的数字

00001
00002
00003
etc.

但范围仍为-2147483648至2147483648。如果在定义字段时未指定ZEROFILL,括号中的数字将被忽略。

答案 1 :(得分:0)

答案 2 :(得分:-1)

字段长度是纯字符长度,int(11)可以存储11个数字(f.e. 11,111,111,111)。

签名确实意味着整数可以具有负值(范围从fe -36768到36768),无符号确实意味着它没有符号,并且只能存储正值(fe从0到65536)。