我假设INT(1)与TINYINT(1)完全相同,但我真的不知道 . 每当我的值只能是一个整数(例如值0-9)时,我总是只使用INT(1)来表示它是一个整数而且它只是一个字符,我认为这意味着它只能是0到9的值(如果我错了,请向我解释) . 我总是忽略你可以将数字转换成其他类型的INT . 我不懂MySQL,并且倾向于避免使用它可以做的更复杂的事情 .
So my question, is there any difference between the various integer types INT, TINYINT, SMALLINT, MEDIUMINT, and BIGINT if you define a length of 1 for each type;? 如果没有,我是否应该使用它们(我可以看到使用它们以获得更多的语义含义,TINYINT比INT更具体)?如果是这样,我可以轻松地(和/或我应该)通过我的数据库并将我的所有INT(1)字段更改为TINYINT(1)字段吗?
3 回答
整数列类型的括号中的数字是“显示宽度” . 这不会影响存储要求,因为它们是预定义的 .
进一步阅读
http://dev.mysql.com/doc/refman/5.0/en/data-types.html
http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
在这里,您将以更好的方式理解它!
正如接受的答案解释:
括号中的数字表示要显示该字段的字符数, not 字段的存储大小 .
但是如果你想知道存储大小,你应该检查MySQL源文件 .
资料来源:MySQL Docs: Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT