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