Tipos de datos en la base de datos MySQL

MySQL admite varios tipos de datos SQL en varias categorías: tipos numéricos, tipos de fecha y hora, tipos de cadena (carácter y byte), tipos espaciales y tipo de datos JSON. Este capítulo ofrece una descripción general de estos tipos de datos, una descripción más detallada de las propiedades de los tipos de cada categoría y un resumen de los requisitos de almacenamiento del tipo de datos. El resumen inicial es intencionalmente breve. Las descripciones más detalladas más adelante en el capítulo deben consultarse para obtener información adicional sobre determinados tipos de datos, como los formatos permitidos en los que se pueden especificar valores.

MySQL utiliza muchos tipos de datos diferentes divididos en tres categorías: numérica, fecha y hora, y tipos de cadenas.

Tipos de datos numéricos:

La lista siguiente muestra los tipos de datos numéricos comunes y sus descripciones:

INT – Un entero de tamaño normal que puede ser signo o no. Si está signo, el rango permitido es de -2147483648 a 2147483647. Si no, el rango permitido es de 0 a 4294967295. Puede especificar un ancho de hasta 11 dígitos.

TINYINT –  Un entero muy pequeño que puede ser con signo o sin signo. El rango permitido es de -128 a 127. sin signo, el rango permitido es de 0 a 255. Puede especificar un ancho de hasta 4 dígitos.

SMALLINT – Un entero pequeño que puede ser con signo o sin signo. Si esta con signo, el rango permitido es de -32768 a 32767. Si no, el rango permitido es de 0 a 65535. Puede especificar un ancho de hasta 5 dígitos.

MEDIUMINT – Un entero de tamaño medio que puede ser con signo o sin sisgno. Si está con signo, el rango permitido es de -8388608 a 8388607. Si no, el rango permitido es de 0 a 16777215. Puede especificar un ancho de hasta 9 dígitos.

BIGINT – Un entero grande que puede ser con signo o sin signo. Si esta con signo, el rango permitido es de -9223372036854775808 a 9223372036854775807. Si no , el rango permitido es de 0 a 18446744073709551615. Puede especificar un ancho de hasta 20 dígitos.

FLOAT(M, D) – Un número de coma flotante que no puede ser sin signo. Puede definir la longitud de visualización (M) y el número de decimales (D).

DOUBLE(M, D) – Un número de punto flotante de doble precisión que no puede ser sin signo. Puede definir la longitud de visualización (M) y el número de decimales (D). Esto no es necesario y se ajustará por defecto a 16,4, donde 4 es el número de decimales. La precisión decimal puede ir a 53 lugares para un DOUBLE.

DECIMAL (M, D) – Un número de coma flotante descomprimido que no puede ser sin signo. En decimales desempaquetados, cada decimal corresponde a un byte. Es necesario definir la longitud de la pantalla (M) y el número de decimales (D).

Tipos de cadenas:

Aunque los tipos numéricos y de fecha son divertidos, la mayoría de los datos que almacenará estarán en formato de cadena. Esta lista describe los tipos de datos de cadena común en MySQL.

CHAR (M) – Una cadena de longitud fija entre 1 y 255 caracteres (por ejemplo CHAR (5)), rellenada a la derecha con espacios a la longitud especificada cuando se almacena. No es necesario definir una longitud, pero el valor predeterminado es 1.

VARCHAR (M) – Una cadena de longitud variable entre 1 y 255 caracteres; Por ejemplo VARCHAR (25). Debe definir una longitud al crear un campo VARCHAR.

BLOB o TEXT – Campo con una longitud máxima de 65535 caracteres. Los BLOB son “Objetos grandes binarios” y se utilizan para almacenar grandes cantidades de datos binarios, como imágenes u otros tipos de archivos.

TINYBLOB o TINYTEXT – Una columna BLOB o TEXT con una longitud máxima de 255 caracteres.

MEDIUMBLOB o MEDIUMTEXT – Una columna BLOB o TEXT con una longitud máxima de 16777215 caracteres. No especifica una longitud con MEDIUMBLOB o MEDIUMTEXT.

LONGBLOB o LONGTEXT – Una columna BLOB o TEXT con una longitud máxima de 4294967295 caracteres. No especifica una longitud con LONGBLOB o LONGTEXT.

ENUM – Una enumeración, que es un término de fantasía para la lista. Al definir un ENUM, está creando una lista de elementos de los que debe seleccionarse el valor (o puede ser NULL). Por ejemplo, si desea que su campo contenga “A” o “B” o “C”, debería definir su ENUM como ENUM (‘A’, ‘B’, ‘C’) y sólo aquellos valores (o NULL) Podría poblar ese campo.

Tipos de fecha y hora:

Los tipos de datos de fecha y hora de MySQL son:

DATE – Una fecha en formato AAAA-MM-DD, entre 1000-01-01 y 9999-12-31. Por ejemplo, el 30 de diciembre de 1973 se almacenaría como 1973-12-30.

DATETIME – Combinación de fecha y hora en AAAA-MM-DD HH: MM: formato SS, entre 1000-01-01 00:00:00 y 9999-12-31 23:59:59. Por ejemplo, a las 3:30 de la tarde del 30 de diciembre de 1973 se almacenaría como 1973-12-30 15:30:00.

TIMESTAMP – Una marca de tiempo entre la medianoche, el 1 de enero de 1970 y en algún momento en 2037. Esto se parece al formato DATETIME anterior, sólo sin los guiones entre los números; 3:30 de la tarde el 30 de diciembre de 1973 sería almacenado como 19731230153000 (AAAAMMDDHHMMSS).

TIME – Almacena la hora en formato HH: MM: SS.

YEAR (M) – Almacena un año en formato de 2 o 4 dígitos. Si la longitud se especifica como 2 (por ejemplo YEAR (2)), YEAR puede ser de 1970 a 2069 (70 a 69). Si la longitud se especifica como 4, YEAR puede ser de 1901 a 2155. La longitud predeterminada es 4.

En Conclusión

Un tipo de datos es un conjunto de valores representables. Cada valor representable pertenece a al menos un tipo de datos y algunos pertenecen a varios tipos de datos. SQL soporta tres tipos de tipos de datos: tipos de datos predefinidos, tipos construidos y tipos definidos por el usuario.

Los tipos de datos predefinidos se denominan a veces “tipos de datos incorporados”, aunque no en este estándar internacional. Cada tipo de datos predefinido es un subtipo de sí mismo y de ningún otro tipo de datos. Se deduce que cada tipo de datos predefinidos es un supertipo de sí mismo y de ningún otro tipo de datos.
Los tipos de datos definidos por el usuario pueden definirse mediante una norma, una implementación o una aplicación