11.1.3 Типы с фиксированной точкой (точное значение) - DECIMAL, NUMERIC
Типы DECIMAL и NUMERIC хранят точные числовые значения. Эти типы используются, когда важно сохранить точную точность, например, с денежными данными. В MySQL, NUMERIC реализован как DECIMAL, поэтому следующие замечания о DECIMAL одинаково применимы к NUMERIC.
MySQL хранит значения DECIMAL в двоичном формате. См. Раздел 12.21, «Точность вычислений».
В объявлении столбца DECIMAL можно (и обычно это делается) указать точность и масштаб. Например:
salary DECIMAL(5,2)
В этом примере 5 — это точность, а 2 — масштаб. Точность представляет собой количество значащих цифр, которые хранятся для значений, а масштаб — количество цифр, которые могут храниться после десятичной точки.
Стандартный SQL требует, чтобы DECIMAL(5,2) мог хранить любое значение с пятью цифрами и двумя десятичными знаками, поэтому значения, которые могут быть сохранены в столбце salary, находятся в диапазоне от -999.99 до 999.99.
В стандартном SQL синтаксис DECIMAL( эквивалентен M)DECIMAL(. Аналогично, синтаксис M,0)DECIMAL эквивалентен DECIMAL(, где реализация имеет право решить значение M,0)M. MySQL поддерживает обе эти варианты синтаксиса DECIMAL. Значение по умолчанию для M равно 10.
Если масштаб равен 0, значения DECIMAL не содержат десятичной точки или дробной части.
Максимальное количество цифр для DECIMAL равно 65, но фактический диапазон для заданного столбца DECIMAL может быть ограничен точностью или масштабом для данного столбца. Когда столбцу присваивается значение с большим количеством цифр после десятичной точки, чем разрешено заданным масштабом, значение преобразуется к этому масштабу. (Точное поведение зависит от операционной системы, но обычно эффект заключается в усечении до допустимого числа цифр.)
© 2025 Oracle
Licensed under the GPLv2 License.