Sintaxis

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

Descripción

Un número de punto fijo “exacto” empaquetado. M es el número total de dígitos (la precisión) y D es el número de dígitos después del punto decimal (la escala). El punto decimal y (para números negativos) el signo “-” no se cuentan en M. Si D es 0los valores no tienen punto decimal o parte fraccionaria y al INSERTAR el valor se redondeará al más cercano DECIMAL. El número máximo de dígitos (M) por DECIMAL es 65. El número máximo de decimales admitidos (D) es 30 antes de MariadB 10.2.1 y 38 después. Si D se omite, el valor predeterminado es 0. Si M se omite, el valor predeterminado es 10.

UNSIGNEDsi se especifica, no permite valores negativos.

ZEROFILLsi se especifica, rellena el número con ceros, hasta el número total de dígitos especificado por M.

Todos los cálculos básicos (+, -, *, /) con DECIMAL las columnas se realizan con una precisión de 65 dígitos.

Para más detalles sobre el attributesconsulte Información general sobre tipos de datos numéricos.

Modo oráculo

MariaDB a partir de 10.3

En modo Oracle desde MariaDB 10.3, NUMBER es un sinónimo.

Ejemplos

CREATETABLE t1 (d DECIMALUNSIGNED ZEROFILL);INSERTINTO t1 VALUES(1),(2),(3),(4.0),(5.2),(5.7);
Query OK,6rows affected,2warnings(0.16 sec)
Records: 6  Duplicates: 0Warnings: 2

Note (Code 1265): Data truncated forcolumn'd' at row5
Note (Code 1265): Data truncated forcolumn'd' at row6SELECT*FROM t1;+------------+| d          |+------------+|0000000001||0000000002||0000000003||0000000004||0000000005||0000000006|+------------+INSERTINTO t1 VALUES(-7);
ERROR 1264(22003): Outof range valueforcolumn'd' at row1

Ver también

  • Descripción general del tipo de datos numéricos
  • Modo Oracle de MariaDB 10.3

El contenido reproducido en este sitio es propiedad de sus respectivos dueños, y MariaDB no revisa este contenido por adelantado. Los puntos de vista, la información y las opiniones expresadas por este contenido no representan necesariamente las de MariaDB o cualquier otra parte.