SQL Int(N) 的大小是多少?
简单的问题。我尝试过在 Google 上搜索,经过大约 6 次搜索后,我认为这里会更快。
SQL 中的 int 有多大?
-- table creation statement.
intcolumn INT(N) NOT NULL,
-- more table creation statement.
该 INT(N)
元素有多大?它的范围是多少?是 2^N 还是 N 字节长? (2^8N)?或者甚至还有其他我不知道的事情?
Simple question. I have tried searching on Google and after about 6 searches, I figured it would be faster here.
How big is an int in SQL?
-- table creation statement.
intcolumn INT(N) NOT NULL,
-- more table creation statement.
How big is that INT(N)
element? What's its range? Is it 2^N or is it N Bytes long? (2 ^ 8N)? Or even something else I have no idea about?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这取决于数据库。 MySQL 有一个 扩展名,其中 INT(N) 表示显示宽度为 4 位十进制数字的 INT。该信息保存在元数据中。
INT 本身仍然是 4 个字节,可以存储 10000 及更大的值(并且可能显示,但这取决于应用程序如何使用结果集)。
编辑:有关更多信息,请参阅链接文档。特别要注意的是,如果使用 ZEROFILL,则存储大于显示宽度的值可能会导致问题(在某些版本的 MySQL 中):“如果您在整数列中存储大于显示宽度的值,具有 ZEROFILL 属性,当 MySQL 为某些复杂的连接生成临时表时,您可能会遇到问题,在这些情况下,MySQL 假定数据值适合列显示宽度。”
It depends on the database. MySQL has an extension where INT(N) means an INT with a display width of 4 decimal digits. This information is maintained in the metadata.
The INT itself is still 4 bytes, and values 10000 and greater can be stored (and probably displayed, but this depends how the application uses the result set).
EDIT: See the linked documentation for more information. In particular, note that storing larger-than-display width values can cause problems (in some versions of MySQL) if ZEROFILL is used: "If you store values larger than the display width in an integer column that has the ZEROFILL attribute, you may experience problems when MySQL generates temporary tables for some complicated joins. In these cases, MySQL assumes that the data values fit within the column display width."