【问题标题】:mysql tinyint(1) vs tinyint(2) vs tinyint(3) vs tinyint(4) [duplicate]mysql tinyint(1) vs tinyint(2) vs tinyint(3) vs tinyint(4) [重复]
【发布时间】:2012-10-18 17:23:38
【问题描述】:

可能重复:
MySql: Tinyint (2) vs tinyint(1) - Which difference?

有什么区别:

  • TinyINT(1)
  • TinyINT(2)
  • TinyINT(3)
  • TinyINT(4)

【问题讨论】:

    标签: mysql


    【解决方案1】:

    TinyINT(M) 的范围始终为 -128..+127 有符号或 0..255 无符号。 M是显示宽度。

    M 表示整数类型的最大显示宽度。最大值 显示宽度为255。显示宽度与范围无关 类型可以包含的值,如第 11.2 节“数字 类型”。对于浮点和定点类型,M 是总数 可以存储的位数。

    来自http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html

    【讨论】:

    • 我是否正确猜测最大显示宽度为 255 与无符号 TINYINT 的最大值也为 255 无关?这只是巧合?
    • @NathanWailes 是的。所以实际上TinyInt(3) unsigned 足以显示255 的最大值。而TinyInt(4) 则需要显示-128
    • 显示什么......在哪里......?如果我正在编写客户端应用程序或 Web 应用程序,我只关心正在检索的值,这取决于我如何格式化/显示它。你的困惑。
    【解决方案2】:

    根据Mysql manual,所有十进制数字类型都支持语法:

    Integer Types (Exact Value)
    

    当使用DECIMALallows you to specify precision

    *INT 类型是 has mainly display function,它还指定使用 ZEROFILL 时应该添加多少个位置。

    字节大小不受影响 (1B for TINYINT)。

    【讨论】:

      【解决方案3】:

      TinyINT = -128...+127

      (n) 用于显示目的。

      【讨论】:

      • @Fricois B. - “展示目的”是什么意思??
      • 显示目的,即当您从表格中选择时,该列的实际字符间距长度。
      • ... 在使用控制台时。对于开发人员来说,将 SQL 数据摄取到结构中,display-width 的值是没有意义的。
      猜你喜欢
      • 2010-10-04
      • 1970-01-01
      • 2011-04-14
      • 2013-08-09
      • 2015-07-11
      • 2015-11-24
      • 2014-12-19
      • 2011-05-16
      • 1970-01-01
      相关资源
      最近更新 更多