¡Hola, bienvenidos y bienvenidas al curso de MySQL 8! Continuando con el curso, hoy veremos qué son los tipos de datos en MySQL.
Una vez concluida la fase de análisis y diseño de datos (Diagrama entidad-relación) llega el momento de construir la base de datos, las tablas y los campos de cada tabla. En este punto, es fundamental distinguir entre los diferentes tipos de datos disponibles y asignar correctamente el tipo de dato que corresponde a cada atributo de la entidad.
¡Empecemos!
Tipos de datos en MySQL
Los tipos de datos definen el tipo de información que se puede almacenar en cada columna de una tabla. Los tipos de datos en MySQL se pueden clasificar en tres grandes categorías:
Datos numéricos
- TINYINT
- SMALLINT
- MEDIUMINT
- INTEGER
- BIGINT
- DECIMAL
- NUMERIC
- FLOAT
- DOUBLE
Datos cadenas (Texto)
- CHAR
- VARCHAR
- BINARY
- VARBINARY
- TINYBLOB
- TINYTEXT
- BLOB
- TEXT
- MEDIUMBLOB
- MEDIUMTEXT
- LONGBLOB
- LONGTEX
- ENUM
- SET
Datos fechas y horas
- DATE
- TIME
- DATETIME
- TIMESTAMP
Tipos de datos numéricos
Los datos numéricos corresponden a datos expresados en números. Por ejemplo, la edad, cantidad de personas de una población, el precio de un producto, tipo de cambio de una moneda, etc. Escoger cuál tipo de dato es el más adecuado al momento de crear los campos dependerá del análisis previo realizado.
Los tipos de datos numéricos se dividen en dos grupos: datos numéricos enteros y datos numéricos decimales.
Numéricos enteros
Los datos numéricos enteros son aquellos que carecen de un punto decimal. Las opciones que tenemos para almacenar este tipo de datos, son:
TINYINT
Bytes: 1, valor con signo mínimo – máximo: -128 a 127, valor sin signo: 0 a 255
SMALLINT
Bytes: 2, valor con signo mínimo – máximo: -32768 a 32767, valor sin signo: 0 a 6553
MEDIUMINT
Bytes: 3, valor con signo mínimo – máximo: -8388608 a 8388607, valor sin signo: 0 a 16777215
INTEGER
Bytes: 4, valor con signo mínimo – máximo: -2147483648 a 2147483647, valor sin signo: 0 – 4294967295
BIGINT
Bytes: 64, valor con signo mínimo – máximo: -9223372036854775808 a 9223372036854775807
Numéricos reales
Los datos numéricos decimales están compuestos por una parte entera y otra decimal. Las opciones que tenemos para almacenar este tipo de datos, son las siguientes:
DECIMAL
Definir con precisión muy exacta. Números significativos. No se debe perder de vista la exactitud.
NUMERIC
Definir con precisión muy exacta. Números significativos. No se debe perder de vista la exactitud.
FLOAT
Precisión simple, la exactitud no tiene mucha relevancia. Rango de precisión entre 0 y 24.
DOUBLE
Precisión doble, la exactitud no tiene mucha relevancia. Rango de precisión entre 25 y 53.
Tipos de datos cadenas (Texto)
Los datos de tipo cadena representan datos alfanuméricos que pueden incluir letras, números, espacios y caracteres especiales. Las opciones con las que se cuenta son:
CHAR
El tipo de dato CHAR almacena una cadena de datos de longitud fija de hasta 255 caracteres, que se reserva en la memoria, aunque no se la utilice toda.
VARCHAR
Almacena la misma cantidad de caracteres que CHAR de 255 caracteres, pero la longitud es variable. La longitud dependerá del contenido que se almacena en la memoria. Por ejemplo, el texto “Framework” consumirá diez caracteres, nueve para las letras y uno para la longitud del texto.
BINARY
Es similar a los tipos de datos CHAR y VARCHAR, la diferencia radica en que no almacena caracteres sino bytes. Asimismo la diferencia con VARBINARY radica en la cantidad de bytes que almacena.
BLOB
Los datos de tipo BLOB guardan información en formato binario de gran tamaño, generalmente se utiliza este tipo de datos para guardar imágenes, sonido y archivos. Las diferencias de TYNYBLOB, MEDIUMBLOB y LONGBLOB se diferencian por la cantidad máxima de almacenamiento.
TINYBLOB
Longitud máxima en Bytes: 255
BLOB
Longitud máxima en Bytes: 65535
MEDIUMBLOB
Longitud máxima en Bytes: 16777215
LONGBLOB
Longitud máxima en Bytes: 4 GB
TEXT
Es utilizado para guardar cualquier tipo de texto de gran tamaño, bajo este formato se pueden almacenar blogs enteros, noticias, comentarios, publicaciones, etc. Las diferencias entre TINYTEXT, MEDIUMTEXT y LONG TEXT es la cantidad de caracteres.
TINYTEXT
Longitud máxima en Bytes: 255
TEXT
Longitud máxima en Bytes: 65535
MEDIUMTEXT
Longitud máxima en Bytes: 16777215
LONGTEXT
Longitud máxima en Bytes: 4294967295
ENUM
Enumeración es un tipo de datos especial que se utiliza para definir valores predeterminados de una lista, los cuales deben estar separados por comas (solo estos valores son permitidos en el campo al momento de ingresar el dato). Se puede almacenar hasta 65535 valores diferentes.
SET
Es un tipo de dato que representa un conjunto de cadenas que puede contener 1 ó más valores, similar a EMUN con la diferencia que se puede almacenar más de un valor en el campo.
Tipo de datos fechas y horas
Los tipos de datos de fechas y horas representan un periodo determinado en el tiempo. Las opciones con las que se cuenta son:
DATE
Es un tipo de dato que permite almacenar fechas en el formato “YYYY-MM-DD”, donde YYYY representa el año, MM representa el mes y DD representa el día. Permite almacenar fechas en un rango de 1000-01-01 a 9999-12-31.
TIME
Es similar a DATE pero sirve para almacenar horas, minutos y segundos; el formato es “HH:MM:SS” donde HH representa la hora, MM los minutos y SS los segundos.
DATETIME
Es un tipo de dato que nos permite registrar con exactitud un determinado periodo de tiempo, almacena las fechas y horas. El formato es “YYYY-MM-DD HH:MM:SS”.
TIMESTAMP
Es un tipo de dato similar a DATETIME con la diferencia de que el rango de fechas utilizado es el presente (desde 1970-01-01 hasta 2037-12-31). Cuenta con tres tipos de formato “YYYY-MM-DD HH:MM:SS”, “YYYY-MM-DD” y “YY-MM-DD”.
Hasta aquí la clase Tipos de datos en MySQL, si tienes alguna duda déjanos un comentario y con gusto te responderemos. En la siguiente clase aplicaremos todo lo aprendido, veremos cómo crear tablas en MySQL.
¡Te espero!
Saludos y éxitos.

Victor Peña
Desarrollador de software Backend Developer, experto en Laravel Framework, PHP, JavaScript y MySQL. Creador de contenidos de emprendimiento y desarrollo de software.
Excelente! muy bien desarrollado y explicado