Tipos de Datos en MySQL

6 minuto(s)

MySQL es una de las bases de datos más populares, esto lo podemos apreciar en el ranking mensual de bases de datos de Nube Colectiva, MySQL esta entre los 5 primeros lugares constantemente. MySQL es una de las primeras bases de datos que los estudiantes de desarrollo web aprenden, esto sirve como base para despegar y aprender otras bases de datos. MySQL actualmente es muy usado en los sitios web de organizaciones y usuarios independientes. Saber los tipos de datos que tiene MySQL te ayudará a ser un mejor profesional trabajando con esta base de datos. En este post te compartiré los Tipos de Datos en MySQL, vamos con ello.

Administrador de Bases de Datos
Existen expertos en administración de bases de datos, son muy solicitados por las organizaciones

Antes de continuar, te invito a escuchar el Podcast: “Herramientas Online Para el Trabajo en Equipo” y “¿ Porqué Es Importante Saber Programar en la Ciberseguridad ?” (Anchor Podcast): 

Spotify: Sound Cloud: Apple Podcasts Anchor Podcasts

Bien ahora continuemos con el Post: Tipos de Datos en MySQL.

Tipos de Datos en MySQL

MySQL cuenta con diferente tipos de datos, básicamente se dividen en 3 grupos de datos: String, Númericos y Fecha/Hora.

Tipos de datos String o Cadena

Tipo de Dato Descripción
CHAR(size) Una cadena de longitud FIJA (puede contener letras, números y caracteres especiales). El parámetro size especifica la longitud de la columna en caracteres; puede ser de 0 a 255. El valor predeterminado es 1
VARCHAR(size) Una cadena de longitud VARIABLE (puede contener letras, números y caracteres especiales). El parámetro size especifica la longitud máxima de la columna en caracteres; puede ser de 0 a 65535
BINARY(size) Igual a CHAR(), pero almacena cadenas de bytes binarios. El parámetro size especifica la longitud de la columna en bytes. El valor predeterminado es 1
VARBINARY(size) Igual a VARCHAR(), pero almacena cadenas de bytes binarios. El parámetro size especifica la longitud máxima de la columna en bytes.
TINYBLOB Para BLOB (Binary Large OBjects). Longitud máxima: 255 bytes
TINYTEXT Contiene una cadena con una longitud máxima de 255 caracteres
TEXT(size) Contiene una cadena con una longitud máxima de 65.535 bytes
BLOB(size) Para BLOB (Binary Large OBjects). Almacena hasta 65.535 bytes de datos
MEDIUMTEXT Contiene una cadena con una longitud máxima de 16 777 215 caracteres
MEDIUMBLOB Para BLOB (Binary Large OBjects). Contiene hasta 16 777 215 bytes de datos
LONGTEXT Contiene una cadena con una longitud máxima de 4.294.967.295 caracteres
LONGBLOB Para BLOB (Binary Large OBjects). Contiene hasta 4 294 967 295 bytes de datos
ENUM(val1, val2, val3, …)
Un objeto de cadena que solo puede tener un valor, elegido de una lista de valores posibles. Puede listar hasta 65535 valores en una lista ENUM. Si se inserta un valor que no está en la lista, se inserta un valor en blanco. Los valores se ordenan en el orden en que los ingresas
SET(val1, val2, val3, …) Un objeto de cadena que puede tener 0 o más valores, elegidos de una lista de valores posibles. Puede enumerar hasta 64 valores en una lista SET

Ahora pasemos a los tipos de datos numéricos.

Tipos de datos Numéricos

Tipo de Dato Descripción
BIT(size) Un tipo de valor de bit. El número de bits por valor se especifica en tamaño. El parámetro size puede contener un valor de 1 a 64. El valor predeterminado para el tamaño es 1.
TINYINT(size) Un entero muy pequeño. El rango con signo es de -128 a 127. El rango sin signo es de 0 a 255. El parámetro size especifica el ancho máximo de visualización (que es 255)
BOOL El cero se considera false, los valores distintos de cero se consideran true.
BOOLEAN Igual a BOOL
SMALLINT(size) Un pequeño entero. El rango con signo es de -32768 a 32767. El rango sin signo es de 0 a 65535. El parámetro size especifica el ancho máximo de visualización (que es 255)
MEDIUMINT(size) Un entero medio. El rango con signo es de -8388608 a 8388607. El rango sin signo es de 0 a 16777215. El parámetro size especifica el ancho máximo de visualización (que es 255)
INT(size) Un entero medio. El rango con signo es de -2147483648 a 2147483647. El rango sin signo es de 0 a 4294967295. El parámetro size especifica el ancho máximo de visualización (que es 255)
INTEGER(size) Igual a INT(size)
BIGINT(size) Un entero grande. El rango con signo es de -9223372036854775808 a 9223372036854775807. El rango sin signo es de 0 a 18446744073709551615. El parámetro size especifica el ancho máximo de visualización (que es 255)
FLOAT(size, d) Un número de punto flotante. El número total de dígitos se especifica en size. El número de dígitos después del punto decimal se especifica en el parámetro d. Esta sintaxis está obsoleta en MySQL 8.0.17 y se eliminará en futuras versiones de MySQL.
FLOAT(p) Un número de punto flotante. MySQL usa el valor p para determinar si usar FLOAT o DOUBLE para el tipo de datos resultante. Si p es de 0 a 24, el tipo de datos se convierte en FLOAT(). Si p es de 25 a 53, el tipo de datos se convierte en DOUBLE()
DOUBLE(size, d) Un número de punto flotante de tamaño normal. El número total de dígitos se especifica en size. El número de dígitos después del punto decimal se especifica en el parámetro d
DOUBLE PRECISION(m, d) Número de coma flotante de doble precisión. Donde m es el total de dígitos y d es el número de dígitos después del decimal.
DECIMAL(size, d) Un número exacto de punto fijo. El número total de dígitos se especifica en size. El número de dígitos después del punto decimal se especifica en el parámetro d. El número máximo para el tamaño es 65. El número máximo para el d es 30. El valor predeterminado para el size es 10. El valor predeterminado para el d es 0.
DEC(size, d) Igual a DECIMAL(size, d)

Todos los tipos de datos numéricos pueden tener una opción adicional: UNSIGNED o ZEROFILL. Si agregas la opción UNSIGNED, MySQL no permite valores negativos para la columna. Si agregas la opción ZEROFILL, MySQL también agrega automáticamente el atributo UNSIGNED a la columna.

Pasemos a los datos de fecha y hora.

Tipos de datos de fecha y hora

Tipo de Dato Descripción
DATE Una fecha. Formato: AAAA-MM-DD. El rango admitido es de ‘1000-01-01’ a ‘9999-12-31’
DATETIME(fsp) Una combinación de fecha y hora. Formato: AAAA-MM-DD hh:mm:ss. El rango admitido es de ‘1000-01-01 00:00:00’ a ‘9999-12-31 23:59:59’. Puedes agregar DEFAULT y ON UPDATE al definir la columna para obtener la inicialización automática y la actualización a la fecha y hora actual
TIMESTAMP(fsp) Una marca de tiempo. Los valores de TIMESTAMP se almacenan como el número de segundos desde la época de Unix (‘1970-01-01 00:00:00’ UTC). Formato: AAAA-MM-DD hh:mm:ss. El rango admitido es de ‘1970-01-01 00:00:01’ UTC a ‘2038-01-09 03:14:07’ UTC. La inicialización automática y la actualización a la fecha y hora actual se pueden especificar usando DEFAULT CURRENT_TIMESTAMP y ON UPDATE CURRENT_TIMESTAMP al definir la columna
TIME(fsp) Una hora. Formato: hh: mm: ss. El rango admitido es de ‘-838: 59: 59’ a ‘ 838: 59: 59’
YEAR Un año en formato de cuatro dígitos. Valores permitidos en formato de cuatro dígitos: 1901 a 2155 y 0000. MySQL 8.0 no admite el año en formato de dos dígitos.

Hata aquí hemos visto todos los tipos de datos que tiene MySQL, en nuevas versiones pude que aparezcan nuevos tipos de datos, solo el tiempo lo dirá.

Conclusión

En este artículo has aprendido los Tipos de Datos en MySQL, probablemente no los lleges a usar todos, pero uno nunca saber siempre aparecen proyectos que nos piden que usemos algunos tipos de datos que nunca habiamos usado. Recuerda que la mejor manera de dominar estos tipos de datos es practicando MySQL, como se dice la práctica hace al maestro.

Nota(s)

  • No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.