类型为 tinyint(2)
的列允许的最大值是多少?
像 255 或 99 这样的值是否允许?我感到困惑,因为 tinyint(2)
中的 (2)
只表示显示... 我的理解正确吗?
类型为 tinyint(2)
的列允许的最大值是多少?
像 255 或 99 这样的值是否允许?我感到困惑,因为 tinyint(2)
中的 (2)
只表示显示... 我的理解正确吗?
显示宽度不限制可以存储在列中的值的范围。也不会阻止比列显示宽度更宽的值被正确显示。
编辑: 不,注意,UNSIGNED
是一个影响范围的非标准属性。你提供的两个值都不是正常TINYINT(2)
的正确上限。
针对评论编辑的编辑: 除非有理由不这样做,否则请相信文档。如果有什么奇怪的地方,请试一下再说。
127
255
255
不是127。
查看这个页面:Mysql整数类型
其他答案没有告诉你的是,如果不使用负数,最大值可以为255。
如果使用负数,则最大值只能为127。
这其实就是“unsigned”和“signed”的意思,不幸的是,没有人向您解释过这一点,所以我可以理解为什么会感到困惑。
“usigned”表示它不能包含负数,因此如果将列设置为“unsigned”,则最大值为“255”。如果您没有明确将列设置为“unsigned”,那么它将接受负数(因此是“signed”列),在这种情况下,最大值现在将是“127”。
其他答案在技术上是正确的,因为默认情况下,Mysql将所有整数列设置为“signed”(可以使用负数)。我认为这个答案解释得更清楚,也许更符合您最初的问题。