MySQL的tinyint(2)的最大值是多少?

17

类型为 tinyint(2) 的列允许的最大值是多少?

像 255 或 99 这样的值是否允许?我感到困惑,因为 tinyint(2) 中的 (2) 只表示显示... 我的理解正确吗?

4个回答

20

为什么要用127?tinyint(2)的含义是什么? - Foysal Vai
看起来127是用于有符号的TINYINT(1),而不是有符号的TINYINT(2)。那么有符号的TINYINT(2)的值是多少?来源:http://dev.mysql.com/doc/refman/5.1/en/integer-types.html - ZurabWeb

12

MySQL 5.0参考手册:数字类型

显示宽度不限制可以存储在列中的值的范围。也不会阻止比列显示宽度更宽的值被正确显示。

编辑: 不,注意,UNSIGNED是一个影响范围的非标准属性。你提供的两个值都不是正常TINYINT(2)的正确上限。

针对评论编辑的编辑: 除非有理由不这样做,否则请相信文档。如果有什么奇怪的地方,请试一下再说。


那么你们的意思是这里允许的最大值是127吗? - user476554
6
是的,127是有符号tinyint的最大值。顺便问一下,尝试一下难吗? - zerkms

9

4
我认为这个问题的正确答案是:
255

不是127。

查看这个页面:Mysql整数类型

其他答案没有告诉你的是,如果不使用负数,最大值可以为255。

如果使用负数,则最大值只能为127。

这其实就是“unsigned”和“signed”的意思,不幸的是,没有人向您解释过这一点,所以我可以理解为什么会感到困惑。

“usigned”表示它不能包含负数,因此如果将列设置为“unsigned”,则最大值为“255”。如果您没有明确将列设置为“unsigned”,那么它将接受负数(因此是“signed”列),在这种情况下,最大值现在将是“127”。

其他答案在技术上是正确的,因为默认情况下,Mysql将所有整数列设置为“signed”(可以使用负数)。我认为这个答案解释得更清楚,也许更符合您最初的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接