Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Fixed-Point Types (Exact Value) - DECIMAL, NUMERIC

13.1.3 固定点类型(精确值)- DECIMAL, NUMERIC

DECIMALNUMERIC 类型存储精确的数字数据值。当需要保留精确的精度时,例如在货币数据中,这些类型非常有用。在 MySQL 中,NUMERIC 实现为 DECIMAL,因此以下关于 DECIMAL 的备注也同样适用于 NUMERIC

MySQL 以二进制格式存储 DECIMAL 值。请参阅 第 14.24 节,“精度数学”

DECIMAL 列声明中,精度和刻度可以(通常是)指定。例如:

salary DECIMAL(5,2)

在这个示例中,5 是精度,2 是刻度。精度表示存储值的重要数字位数,而刻度表示小数点后的数字位数。

标准 SQL 要求 DECIMAL(5,2) 能够存储任何五位数字和两位小数的值,因此可以在 salary 列中存储的值范围从 -999.99999.99

在标准 SQL 中,语法 DECIMAL(M) 等同于 DECIMAL(M,0)。类似地,语法 DECIMAL 等同于 DECIMAL(M,0),其中实现可以决定 M 的值。MySQL 支持这两种变体形式的 DECIMAL 语法。默认值为 M 是 10。

如果刻度为 0,DECIMAL 值不包含小数点或小数部分。

DECIMAL 的最大数字位数为 65,但给定 DECIMAL 列的实际范围可以由精度或刻度约束。当将值分配给具有更多小数点后的数字位数的列时,该值将被转换为该刻度。(精确的行为是操作系统特定的,但通常的效果是截断到允许的数字位数。)