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