Estos son los diferentes datos que provee MySQL para usar en sus columnas.
Numéricos enteros
Tipo |
Tamaño |
Valor mínimo |
Valor máximo |
INTEGER |
32 bits |
-2^31 |
2^31 - 1 |
UNSIGNED INTEGER |
32 bits |
0 |
2^32 - 1 |
BIT (M) |
M |
1 bit |
64 bits |
TINYINT |
8 bits |
-2^7 |
2^7 - 1 |
UNSIGNED TINYINT |
8 bits |
0 |
2^8-1 |
SMALLINT |
16 bits |
-2^15 |
2^15 - 1 |
UNSIGNED SMALLINT |
16 bits |
0 |
2^16 - 1 |
MEDIUMINT |
24 bits |
-2^23 |
2^23 - 1 |
UNSIGNED MEDIUMINT |
24 bits |
0 |
2 |
BIGINT |
64 bits |
-2^63 |
2^63 - 1 |
UNSIGNED BIGINT |
64 bits |
0 |
2^64 - 1 |
Aliases
Tipo |
Alias de |
Descripción |
BOOL |
TINYINT(1) |
Un valor de 0 es considerado falso, los demás son considerados verdaderos |
BOOLEAN |
TINYINT(1) |
Un valor de 0 es considerado falso, los demás son considerados verdaderos |
SERIAL |
BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE |
N/A |
Notas
- El tipo
BIT
no se imprime en declaraciones de SELECT
, es un valor binario.
Numéricos reales
Tipo |
Tamaño |
Valor mínimo |
Valor máximo |
FLOAT |
32 bits |
-3.402823466E+38 / 1.175494351E-38 |
-1.175494351E-38 / 3.402823466E+39 |
DOUBLE |
64 bits |
-1.7976931348623157E+308 / 2.2240738585072014E-308 |
-2.2240738585072014E-308 / 1.7976931348623157E+308 |
Aliases
Tipo |
Alias de |
Descripción |
DEC |
DECIMAL |
N/A |
FIXED |
DECIMAL |
N/A |
DOUBLE_PRECISION |
DOUBLE |
N/A |
REAL |
DOUBLE |
N/A |
Notas
- Existe el atributo
UNSIGNED
en numéricos reales pero está obsoleto y no se recomienda su uso pues puede desaparecer en versiones futuras.
Texto
Tipo |
Tamaño mínimo |
Tamaño máximo |
Descripción |
CHAR |
0 |
255 |
Cadena de texto rellena con espacios a la derecha hasta cumplir el tamaño configurado |
VARCHAR |
0 |
2^16 * |
El tamaño máximo puede variar de acuerdo al charset configurado. El tamaño almacenado es variable |
BINARY |
0 |
255 |
Similar a CHAR pero almacena cadenas binarias en lugar de caracteres |
VARBINARY |
0 |
2^16 * |
Similar a VARCHAR pero almacena cadenas binarias en lugar de caracteres |
TINYBLOB |
0 |
2^8 - 1 |
Almacena datos binarios |
TINYTEXT |
0 |
2^8 - 1 |
Almacena caracteres |
BLOB |
0 |
2^16 - 1 |
Almacena datos binarios |
TEXT |
0 |
2^16 - 1 |
Almacena caracteres |
MEDIUMBLOB |
0 |
2^24 - 1 |
Almacena datos binarios |
MEDIUMTEXT |
0 |
2^24 - 1 |
Almacena caracteres |
LONGBLOB |
0 |
2^32 - 1 |
Almacena datos binarios |
LONGTEXT |
0 |
2^32 - 1 |
Almacena caracteres |
ENUM |
2^3 - 1 |
2^8 - 1 |
Permite contener una cadena de caracteres de una lista predefinida |
SET |
2^3 - 1 |
2^64 - 1 |
Similar a ENUM pero permite contener uno o más valores, hasta 64. |
Notas
CHAR
, VARCHAR
, BINARY
y VARBINARY
pueden ser especificados como índices sin agregar prefijos extra.
Fechas
Tipo |
Valor mínimo |
Valor máximo |
Descripción |
DATE |
1000-01-01 |
9999-12-31 |
El formato de almacenamiento es YYYY-MM-DD |
DATETIME |
1000-01-01 00:00:00.000000 |
9999-12-31 23:59:59.999999 |
La precisión de los segundos fraccionales es configurable, por defecto es 0 |
TIMESTAMP |
1970-01-01 00:00:01.000000 |
2038-01-19 03:14:07.999999 |
Utiliza el EPOCH de Unix. El valor 0 está reservado para representar 0000-00-00 00:00:00 |
TIME |
-838:59:59.000000 |
838:59:59.000000 |
|
YEAR |
1901 |
2155 |
El formato de almacenamiento es YYYY. El valor nulo es representado por 0000 |
Geoespaciales
Tipo |
Descripción |
POINT (x, y) |
Una columna especificando coordenadas |
LINESTRING (x1 y1, x2 y2, …) |
Una columna especificando una línea. Cada par de coordenadas está separado por una coma |
POLYGON ((x1 y1, x2 y2, …), (x1 y1, x2 y2, …)) |
Una columna especificando un polígono. |
MULTIPOINT |
Una columna especificando diferentes puntos. A diferencia de LINESTRING , estos no forman una línea. |
Notas
- Un polígono es una figura geométrica cerrada compuesta de segmentos de líneas.
- Los datos espaciales pueden visualizarse usando WKT (Well-Known Text) o WKB (Well-Known Binary).
- Los datos espaciales son almacenados usando WKB (Well-Known Binary).
JSON
Tipo |
Descripción |
JSON |
Almacena documentos de JSON en la columna |
Notas
- Permite validación de documentos previo al almacenamiento.
- Almacena el JSON en un formato binario que acelera el acceso a lectura de atributos del documento.
Fuentes
- MySQL :: MySQL 8.0 Reference Manual :: 11 Data Types. (n.d.). Retrieved October 30, 2022, from https://dev.mysql.com/doc/refman/8.0/en/data-types.html
- MySQL :: MySQL 8.0 Reference Manual :: 11.1 Numeric Data Types. (n.d.). Retrieved October 30, 2022, from https://dev.mysql.com/doc/refman/8.0/en/numeric-types.html
- MySQL :: MySQL 8.0 Reference Manual :: 11.2 Date and Time Data Types. (n.d.). Retrieved October 30, 2022, from https://dev.mysql.com/doc/refman/8.0/en/date-and-time-types.html
- MySQL :: MySQL 8.0 Reference Manual :: 11.4 Spatial Data Types. (n.d.). Retrieved October 30, 2022, from https://dev.mysql.com/doc/refman/8.0/en/spatial-types.html
- MySQL :: MySQL 8.0 Reference Manual :: 11.5 The JSON Data Type. (n.d.). Retrieved October 30, 2022, from https://dev.mysql.com/doc/refman/8.0/en/json.html