DECIMAL
Синтаксис
DECIMAL[(M[,D])] [SIGNED | UNSIGNED | ZEROFILL]
Описание
Упакованное «точное» число с фиксированной запятой. M — это общее количество цифр (точность), а D — количество цифр после десятичной точки (разрядность).
- Десятичная точка и (для отрицательных чисел) знак «-» не учитываются в
M. - Если
Dравно0, значения не содержат десятичной точки или дробной части, и при ВСТАВКЕ значение будет округлено до ближайшегоDECIMAL. - Максимальное количество цифр (
M) дляDECIMALсоставляет 65. - Максимальное количество поддерживаемых десятичных знаков (
D) составляет30до MariadB 10.2.1 и38после. - Если
Dопущено, значение по умолчанию —0. ЕслиMопущено, значение по умолчанию —10.
UNSIGNED, если указано, запрещает отрицательные значения.
ZEROFILL, если указано, дополняет число нулями до общего количества цифр, заданного M.
Все базовые вычисления (+, -, *, /) со столбцами DECIMAL выполняются с точностью 65 цифр.
Дополнительные сведения об атрибутах см. в разделе Обзор числовых типов данных.
DEC, NUMERIC и FIXED являются синонимами, а также NUMBER в Режим Oracle с MariaDB 10.3.
Примеры
CREATE TABLE t1 (d DECIMAL UNSIGNED ZEROFILL); INSERT INTO t1 VALUES (1),(2),(3),(4.0),(5.2),(5.7); Query OK, 6 rows affected, 2 warnings (0.16 sec) Records: 6 Duplicates: 0 Warnings: 2 Note (Code 1265): Data truncated for column 'd' at row 5 Note (Code 1265): Data truncated for column 'd' at row 6 SELECT * FROM t1; +------------+ | d | +------------+ | 0000000001 | | 0000000002 | | 0000000003 | | 0000000004 | | 0000000005 | | 0000000006 | +------------+
При установленном strict_mode, значение по умолчанию с MariaDB 10.2.4:
INSERT INTO t1 VALUES (-7); ERROR 1264 (22003): Out of range value for column 'd' at row 1
При отключенном strict_mode, значение по умолчанию до MariaDB 10.2.3:
INSERT INTO t1 VALUES (-7); Query OK, 1 row affected, 1 warning (0.02 sec) Warning (Code 1264): Out of range value for column 'd' at row 1 SELECT * FROM t1; +------------+ | d | +------------+ | 0000000001 | | 0000000002 | | 0000000003 | | 0000000004 | | 0000000005 | | 0000000006 | | 0000000000 | +------------+
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/decimal/