Spec-Zone.ru › MariaDB

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 |
+------------+

См. также

  • Обзор числовых типов данных
  • Режим Oracle с MariaDB 10.3
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержание не проверяется заранее компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/decimal/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API