3.2.1. Tipos de datos numericos

Los tipos de datos numéricos comprenden dos categorías, los enteros y los números con punto flotante.

Números enteros

La principal diferencia entre cada uno de los tipos de enteros es su tamaño, que va desde 1 byte de almacenamiento hasta los 8 bytes. Las columnas de tipo en- tero pueden recibir dos atributos adicionales, que deben especificarse inmediatamente después del nombre del tipo:

•    unsigned. Indica que el entero no podrá almacenar valores negativos. Es responsabilidad del usuario verificar, en este caso, que los resultados de las restas no sean negativos, porque MySQL los convierte en positivos.

•    zerofill. Indica que la columna, al ser mostrada, rellenará con ceros a la iz- quierda los espacios vacíos. Esto de acuerdo al valor especificado por M en la declaración del tipo. Una columna con el atributo zerofill es al mismo tiempo unsigned aunque no se especifique.

 

Ejemplo

create table números (
x int(4) zerofill not null,
y int(5) unsigned
);

El comando anterior crea una tabla con dos columnas. Ambas ocuparán un espacio de 4 bytes, pero al mostrarse, la columna x ocupará un espacio de 4 dígitos y la columna y, de 5.

 

Tanto zerofill como unsigned deben escribirse siempre antes que cualquier otro atributo de columna.

 

Tipos enteros

Tipo Espacio de almacenamiento Significado
tinyint[(M)] 1 byte Entero muy pequeño
smallint[(M)] 2 bytes Entero pequeño
mediumint[(M)] 3 bytes Entero mediano
int[(M)] 4 bytes Entero
bigint[(M)] 8 bytes Entero grande

Números con punto flotante

MySQL cuenta con los tipos float y double, de 4 y 8 bytes de almacenamiento. Además incluye el tipo decimal, que se almacena como una cadena de carac- teres y no en formato binario.

 

Números de punto flotante

Tipo Espacio de almacenamiento Significado
float 4 bytes Simple precisión
double 8 bytes Doble precisión
decimal M + 2 bytes Cadena de caracteres representando un número flotante