En MySQL, los tipos de datos definen el tipo de valores que se pueden almacenar en las columnas de una tabla. Elegir el tipo de dato adecuado es crucial para garantizar que los datos se manejen de manera eficiente y precisa. A continuación, se describen los principales tipos de datos en MySQL, agrupados en categorías.
1. Tipos de Datos Numéricos
Estos tipos se utilizan para almacenar números, ya sean enteros, decimales, o números de punto flotante.
- TINYINT: Entero muy pequeño. Rango: -128 a 127 (con signo) o 0 a 255 (sin signo).
- SMALLINT: Entero pequeño. Rango: -32,768 a 32,767 (con signo) o 0 a 65,535 (sin signo).
- MEDIUMINT: Entero mediano. Rango: -8,388,608 a 8,388,607 (con signo) o 0 a 16,777,215 (sin signo).
- INT (INTEGER): Entero estándar. Rango: -2,147,483,648 a 2,147,483,647 (con signo) o 0 a 4,294,967,295 (sin signo).
- BIGINT: Entero grande. Rango: -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 (con signo) o 0 a 18,446,744,073,709,551,615 (sin signo).
- FLOAT: Número de punto flotante de precisión simple.
- DOUBLE: Número de punto flotante de precisión doble.
- DECIMAL: Número decimal de precisión fija. Se utiliza para valores monetarios o cuando se requiere precisión exacta. Ejemplo:
DECIMAL(10, 2)
almacena hasta 10 dígitos, con 2 dígitos después del punto decimal.
2. Tipos de Datos de Fecha y Hora
Estos tipos se utilizan para almacenar fechas y horas.
- DATE: Almacena una fecha en formato
YYYY-MM-DD
. Rango:1000-01-01
a9999-12-31
. - DATETIME: Almacena una fecha y hora en formato
YYYY-MM-DD HH:MM:SS
. Rango:1000-01-01 00:00:00
a9999-12-31 23:59:59
. - TIMESTAMP: Almacena una marca de tiempo en formato
YYYY-MM-DD HH:MM:SS
. Se utiliza para registrar el momento en que un registro fue creado o modificado. Rango:1970-01-01 00:00:01
UTC a2038-01-19 03:14:07
UTC. - TIME: Almacena una hora en formato
HH:MM:SS
. Rango:-838:59:59
a838:59:59
. - YEAR: Almacena un año en formato
YYYY
. Rango:1901
a2155
.
3. Tipos de Datos de Cadenas de Texto
Estos tipos se utilizan para almacenar texto, desde caracteres individuales hasta cadenas largas.
- CHAR: Almacena una cadena de longitud fija. Por ejemplo,
CHAR(10)
almacena una cadena de exactamente 10 caracteres. Si la cadena es más corta, se rellena con espacios. - VARCHAR: Almacena una cadena de longitud variable. Por ejemplo,
VARCHAR(255)
puede almacenar hasta 255 caracteres, y la longitud real se ajusta al tamaño del dato insertado. - TEXT: Almacena una cadena de texto larga. Hay varias variantes según la longitud:
- TINYTEXT: Hasta 255 caracteres.
- TEXT: Hasta 65,535 caracteres.
- MEDIUMTEXT: Hasta 16,777,215 caracteres.
- LONGTEXT: Hasta 4,294,967,295 caracteres.
- BINARY: Similar a
CHAR
, pero almacena datos binarios. - VARBINARY: Similar a
VARCHAR
, pero almacena datos binarios.
4. Tipos de Datos de Texto Largos y Binarios
Estos tipos se utilizan para almacenar grandes cantidades de texto o datos binarios, como archivos, imágenes o documentos.
- BLOB: Almacena datos binarios grandes (Binary Large Object). Hay varias variantes según la longitud:
- TINYBLOB: Hasta 255 bytes.
- BLOB: Hasta 65,535 bytes.
- MEDIUMBLOB: Hasta 16,777,215 bytes.
- LONGBLOB: Hasta 4,294,967,295 bytes.
5. Tipos de Datos de Enumeración y Conjunto
Estos tipos se utilizan para almacenar valores que pertenecen a un conjunto predefinido.
- ENUM: Almacena uno de los valores predefinidos. Ejemplo:
ENUM('pequeño', 'mediano', 'grande')
. - SET: Almacena uno o más valores que pertenecen a un conjunto predefinido. Ejemplo:
SET('rojo', 'verde', 'azul')
.
6. Tipos de Datos Espaciales
Estos tipos se utilizan para almacenar datos espaciales o geográficos.
- GEOMETRY: Almacena datos geométricos en general.
- POINT: Almacena una coordenada geográfica única.
- LINESTRING: Almacena una línea representada por varias coordenadas.
- POLYGON: Almacena un polígono formado por varias líneas.
7. Tipos de Datos JSON
- JSON: Almacena datos en formato JSON (JavaScript Object Notation). Es útil para almacenar datos semiestructurados.