MySQL – Datos numéricos de coma fija

Objetivo: Introducir el tipo DECIMAL para la representación de datos numéricos de coma fija en MySQL.

Hemos tratado ya el tipo INTEGER para la introducción de datos numéricos enteros en una tabla MySQL. Pero supongamos que tenemos que definir un campo para almacenar el precio exacto en euros de un determinado artículo; es obvio que necesitamos otro tipo de representación que permita introducir los decimales de los céntimos.

Para poder almacenar numeros con cifras decimales exactas, también conocidos de coma fija (en oposición a los de coma flotante para números reales en general, que trataremos más adelante), MySQL dispone del tipo de datos DECIMAL, que puede simplificarse como DEC.

Su sintaxis es DECIMAL(m,n), donde m es el número máximo de cifras en total (incluyendo la parte decimal) y n es el número de cifras después de la coma.

Por ejemplo; imagínate que sabes que el precio de un artículo en euros siempre será inferior a 100 euros. Es decir, el precio máximo sería 99’99 euros. ¿Cómo representaríamos este tipo de columna?

El número máximo de cifras es cuatro, dos de ellas decimales, por lo que el campo puede definirse como

DECIMAL(4,2)

Esta definición incluye a los números negativos, de modo que el rango de cifras completo que abarca es desde -99’99 hasta 99’99.

Vamos a crear una sencilla tabla de ejemplo para almacenar pedidos en la que incluiremos el nombre de un artículo, la cantidad a pedir y el precio unitario (que acotaremos por debajo de los 1000 euros).

mysql> CREATE TABLE pedidos
    -> (
    -> articulo VARCHAR(25),
    -> cantidad INT,
    -> precio DEC(5,2)
    -> );
Query OK, 0 rows affected (0.06 sec)

Observa cómo he definido el campo precio: he puesto 5 porque es el total de cifras (las tres antes de la coma y las dos después de ella).

Repasemos su estructura:

mysql> DESC pedidos;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| articulo | varchar(25)  | YES  |     | NULL    |       |
| cantidad | int(11)      | YES  |     | NULL    |       |
| precio   | decimal(5,2) | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

Con todo lo que hemos visto ya, aunque nos faltan más tipos de campos aún, puedes hacer tus pinitos diseñando tablas. En breve estaremos introduciendo datos ya a esas estructuras vacías…

Javier Montero Gabarró


MySQL – Datos numéricos de coma fija


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


¡Accede al índice con todos los artículos sobre MySQL!

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies