【问题标题】:MySQL Variable for human height (tinyint or smallint)用于人体身高的 MySQL 变量(tinyint 或 smallint)
【发布时间】:2016-09-24 05:12:05
【问题描述】:

我是 SQL 新手!因此,如果我想将一个人的身高添加到我的表中(例如 1.86),我应该使用什么变量类型? Tinyint 还是 Smallint?

【问题讨论】:

  • 您可能应该提到您使用的是哪个 SQL 引擎,MySQL、MSSQL、Oracle 等。如果您想将高度值存储为小数,那么您不能使用整数类型,例如 TINYINT,您将需要查看定点或浮点数据类型。如果您要使用整数类型(例如存储厘米而不是分数米),那么 UNSIGNED TINYINT 会将您的最大值限制为 255,而 SIGNED TINYINT 将限制为 127,请参阅:dev.mysql.com/doc/refman/5.7/en/integer-types.html

标签: mysql variables types tinyint


【解决方案1】:

你应该使用

要存储 :: 1.86 AS 人类身高,请使用 DOUBLE(3,2)

在上述情况下,您也可以使用 DECIMAL(3,2),但 DECIMAL 主要用于财务数字,因为 DOUBLE 会导致一些舍入问题。

Storing statistical data, do I need DECIMAL, FLOAT or DOUBLE?

如果你能把 1.86 米换算成厘米

然后将 :: 186 cm 存储为人类身高,使用 SMALLINT

最佳数据类型:

http://www.developwebsites.net/choose-optimal-mysql-data-type/

【讨论】:

    【解决方案2】:

    我会跳过小数点并将其存储为厘米。

    然后,只需使用UNSIGNED TINYINTmax value of 255 = 2.55 米)或SMALLINTmax value of 32767)。

    它只使用一小部分字节存储空间(与 FLOATDECIMAL 相比),并且可以说更易于使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-28
      • 2014-10-15
      • 2010-10-11
      • 2012-07-26
      • 1970-01-01
      • 2012-10-30
      • 2023-03-17
      • 1970-01-01
      相关资源
      最近更新 更多