Tipos de datos en MySQL

Tipos de datos en MySQL

¡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

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.

1 comentario en “Tipos de datos en MySQL”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *