tinyint(2)
类型的列允许的最大值是多少?
是否允许使用255或99之类的值?我感到困惑,因为(2)
tinyint(2)
仅表示显示...我是否正确?
答案 0 :(得分:20)
答案 1 :(得分:12)
MySQL 5.0 Reference Manual: Numeric Types
显示宽度不会限制可以存储在列中的值的范围。它也不会阻止比列显示宽度更宽的值正确显示。
修改:否。请注意,UNSIGNED
是影响范围的非标准属性。您的问题中给出的值都不是普通 TINYINT(2)
的正确上限。
编辑评论编辑:信任文档,除非有理由不这样做。如果有些东西看似腥,TIAS(试试看)。
答案 2 :(得分:6)
对于tinyint数据类型:
如果db列是SIGNED:min:-128,max:127
如果db列是UNSIGNED:min:0,max:255
只是这个。
更多帮助! :
http://dev.mysql.com/doc/refman/5.1/en/integer-types.html
答案 3 :(得分:0)
我相信这个问题的正确答案是:
255
不是127.
查看此页面:Mysql Integer types
如果你不使用负数,那么其他答案没有告诉你,最大值可以是255。
如果您使用的是负数,那么最大值只能是127.
这真的是unsigned
和signed
字的含义,遗憾的是没有人向你解释这一点,所以我可以看出为什么它令人困惑。
usigned
表示不能包含负数,因此如果您将列设置为unsigned
,则可以使用255
作为最大值。如果您未明确将列设置为unsigned
,则表示它将接受负数(因此为signed
列),在这种情况下,最大值现为127
。
其他答案在技术上是正确的,因为默认情况下,Mysql会将所有整数列设置为signed
(能够使用负数)。我只是认为这个答案可以解释一些事情,或许与你原来的问题更密切相关。