TINYINT(M)中列长的目的是什么?

时间:2013-12-06 18:06:51

标签: mysql types

我研究了MySQL文档,现在不确定TINYINT(M)中的列长度规范(M)是什么意思。 TINYINT UNSIGNED的值范围为0到255,但TINYINT(1) UNSIGNED的范围是0到9?

压缩效果更好吗?

1 个答案:

答案 0 :(得分:3)

关于numeric type attributes:

的MySQL文档
  

显示宽度不会限制可以的值范围   存储在列中。它也不会阻止比列宽的值   正确显示显示宽度。例如,一列   指定为SMALLINT(3)的通常SMALLINT范围为-32768到   32767,超出三位数允许范围的值   使用三位数以上完整显示。

     

与可选(非标准)属性一起使用时   ZEROFILL,空格的默认填充替换为零。对于   例如,对于声明为INT(4)ZEROFILL的列,值为5   检索为0005。

也就是说,只有当您关心左侧可能显示的0或者您处于CLI环境中时,才应考虑此属性。 此外,如果您将一个字段声明为tinyint(2)并且存储的数字是113,则会显示所有3个字符(尽管之前的答案说明了)