DECIMAL

Sintassi

DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]

Spiegazione

Un numero a virgola fissa compresso ed "esatto". M è il numero totale di cifre (la precisione) e D è il numero di cifre dopo il punto decimale (la scala). Il punto decimale e, per i segni negativi, il segno "-" non sono conteggiati in M. Se D è 0, i valori non avranno il punto decimale nè una parte frazionale; durante le INSERT il valore verrà arrotondato al numero più vicino. Il numero massimo di cifre (M) per il tipo DECIMAL è 65. Il numero massimo di decimali supportati (D) è 30. Se D è omesso, il valore predefinito è 0. Se M è omesso, il valore predefinito è 10.

UNSIGNED, se specificato, proibisce i valori negativi.

ZEROFILL, se specificato, riempe il numero di zeri, fino a raggiungere il totale di cifre indicato in M.

Tutti i calcoli di base (+, -, *, /) sulle colonne DECIMAL sono effettuati con una precisione di 65 cifre decimali.

Esempi

MariaDB [test]> CREATE TABLE t1 (d DECIMAL UNSIGNED ZEROFILL);
Query OK, 0 rows affected (0.40 sec)

MariaDB [test]> 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
MariaDB [test]> select * from t1;
+------------+
| d          |
+------------+
| 0000000001 |
| 0000000002 |
| 0000000003 |
| 0000000004 |
| 0000000005 |
| 0000000006 |
+------------+
6 rows in set (0.00 sec)

MariaDB [test]> insert into t1 values (-7);
ERROR 1264 (22003): Out of range value for column 'd' at row 1
MariaDB [test]> 

Commenti

Sto caricando i commenti......
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.