我研究了MySQL文档,现在不确定TINYINT(M)中的列长度规范(M
)是什么意思。 TINYINT UNSIGNED的值范围为0到255,但TINYINT(1) UNSIGNED
的范围是0到9?
压缩效果更好吗?
答案 0 :(得分:3)
显示宽度不会限制可以的值范围 存储在列中。它也不会阻止比列宽的值 正确显示显示宽度。例如,一列 指定为SMALLINT(3)的通常SMALLINT范围为-32768到 32767,超出三位数允许范围的值 使用三位数以上完整显示。
与可选(非标准)属性一起使用时 ZEROFILL,空格的默认填充替换为零。对于 例如,对于声明为INT(4)ZEROFILL的列,值为5 检索为0005。
也就是说,只有当您关心左侧可能显示的0或者您处于CLI环境中时,才应考虑此属性。 此外,如果您将一个字段声明为tinyint(2)并且存储的数字是113,则会显示所有3个字符(尽管之前的答案说明了)