【问题标题】:MySQL - Default value in field type INTMySQL - 字段类型 INT 中的默认值
【发布时间】:2016-01-07 19:14:01
【问题描述】:

我有一个问题想帮我解决,它是关于数据库字段中数据类型的值。

  1. 必须指定具有字段标识符 id INT 的字符或值的数量。

id INT UNSIGNED NOT NULL AUTO_INCREMENT

  1. id INTid INT(11)有什么区别,必须建立多个值?。

id INT UNSIGNED NOT NULL AUTO_INCREMENT

id(11) INT UNSIGNED NOT NULL AUTO_INCREMENT

  1. 如果不指定任何值,id INT 中 MySQL 的默认设置是什么?

  2. 允许我添加 INT 的最大确切数字是多少

  3. 在这种情况下,您必须使用 INT

  4. 在这种情况下,您应该使用 BIGINT

示例:我将举一个新闻门户的例子,我可以收到很多访问。

需要记录它被访问全球新闻的次数,比如说你的新闻一年被访问999.999.999次,有点夸张知道:),但是在这种情况下使用是有效的INT 或 BIGINT

非常感谢您的支持。

【问题讨论】:

  • 您只需要知道数据的长度是多少。 INT 是 4 字节整数的缩写,表示它是一个可以在 4 字节内分配的数字。 1 字节 = 8 位,因此 4 字节 = 32 位,等于 2 的 32 次方。存储无符号值时,约为 42 亿。所以,如果你认为 42 亿还不够,你可以将它放大到 bigint,即 2 ^ 64 - 现在这是一个相当大的数字,你需要几百万年才能超过那个 :)跨度>

标签: mysql database


【解决方案1】:

根据Numeric Type Attributes

MySQL 支持扩展,用于在类型的 base 关键字后面的括号中可选地指定整数数据类型的显示宽度。 例如,INT(4) 指定显示宽度为四位的 INT。应用程序可以使用此可选显示宽度来显示宽度小于为列指定的宽度的整数值,方法是用空格向左填充它们。(即,此宽度存在于与结果一起返回的元数据中设置。是否使用取决于应用程序。)

并根据Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT

数据类型INT使用4个字节(从-21474836482147483647或无符号从04294967295),数据类型BIGINT使用8个字节(从-92233720368547758089223372036854775807或从018446744073709551615 的未签名)。

所以我认为您的问题的答案是:

  • 广告 1) 编号
  • 广告 2) 如上所述。
  • 广告 3) 不会指定显示宽度。
  • 广告 3) 显示将设置为数据类型 INT 的默认值。无符号为 10,有符号为 11(有符号有更多空间用于前导短划线字符、减号、负值)。

    感谢spencer7593 的更正。

  • 广告 4) 见上文。

  • 广告 5 和 6) 直到 2147483647,您可以使用 INT,在该值以上,您必须使用无符号 INTBIGINT

【讨论】:

  • +1。但是3)显示宽度将设置为数据类型INT的默认值。无符号数为 10,有符号数为 11。(有符号数还有一个,以便为负值的前导短划线字符(减号)留出空间。
【解决方案2】:
  1. 必须指定具有字段标识符 id INT 的字符或值的数量。

id INT UNSIGNED NOT NULL AUTO_INCREMENT

ANS:在数据库中,主键从 1 开始并以 1 递增。所以 1,2, ... 因此,您不必指定 UNSIGNED

  1. id INTid INT(11)有什么区别,必须建立多个值?。

id INT UNSIGNED NOT NULL AUTO_INCREMENT

// (11) 将在数据类型上,而不是在列名上。

id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT

ANS:当您指定限制时,即可以输入的最大字符数。 INT is 2147483647 的最大值。在 INT 中,限制不影响

  1. 如果不指定任何值,id INT 中 MySQL 的默认设置是什么?

答:INT 的默认值是 0,除非它是 Primary Key,在这种情况下它是 1

  1. 允许我添加 INT 的确切数字的最大数量是多少?

  1. 在这种情况下,您必须使用 INT

Ans:对于主键或您始终需要整数的列。示例:某物的数量。

  1. 在这种情况下,您应该使用 BIGINT

Ans:您可以使用 BIGINT 来处理数量远远超过 INT 可以容纳的数量

可以参考http://dev.mysql.com/doc/refman/5.7/en/integer-types.html

【讨论】:

  • 哇...你真快...我一看到问题就开始回答:D
  • 哇,如果它很快:),好吧,那么我可以推断出INT的最大值是:二十亿,一亿四千七百万,四十八万三千六百和四十七 - 和 BIGINT 九十亿、二百二十三千万、三百七十二万亿、三百六十亿、八亿五千四百万、七十七万五千八百七。
  • @Learningandsharing 是的,BIGINT 是一个更大的 int,就它可以容纳的最大值和最小值而言dev.mysql.com/doc/refman/5.7/en/integer-types.html
  • 非常感谢您帮助解决了疑惑,这对我来说已经很清楚了!
  • “指定长度不是强制性的。如果你这样做是首选,因为限制会使用更少的数据库空间”这是不正确的。在整数类型的情况下,长度参数指示显示宽度(无论如何,大多数客户端都会忽略它)并且可以与 zerofill 属性一起使用。它不会影响存储给定数据所需的空间。如果要使用更少的存储空间,则必须使用更小的整数数据类型,例如 tinyint 或 mediumint
猜你喜欢
  • 2012-05-23
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
  • 2020-10-11
  • 1970-01-01
相关资源
最近更新 更多