English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tipos de datos MySQL

La definición de tipos de datos de campos en MySQL es muy importante para la optimización de su base de datos.

MySQL admite varios tipos de datos, que se pueden dividir大致 en tres categorías: numéricos, fechas/Tipos de datos de tiempo y cadenas (caracteres).

Tipos de datos numéricos

MySQL admite todos los tipos de datos numéricos estándar de SQL.

Estos tipos incluyen tipos de datos numéricos estrictos (INTEGER, SMALLINT, DECIMAL y NUMERIC), así como tipos de datos numéricos aproximados (FLOAT, REAL y DOUBLE PRECISION).

La palabra clave INT es sinónimo de INTEGER, la palabra clave DEC es sinónimo de DECIMAL.

El tipo BIT guarda valores de campos de bits y admite tablas MyISAM, MEMORY, InnoDB y BDB.

Como extensión del estándar SQL, MySQL también admite tipos de enteros TINYINT, MEDIUMINT y BIGINT. La siguiente tabla muestra el almacenamiento y el rango necesario para cada tipo de entero.

tipostamañorango (con signo)rango (sin signo)usos
TINYINT1 byte(-128,127)(0,255)valor entero pequeño
SMALLINT2 bytes(-32 768,32 767)(0,65 535)valor entero grande
MEDIUMINT3  bytes(-8 388 608,8 388 607)(0,16 777 215)valor entero grande
INT o INTEGER4  bytes(-2 147 483 648,2 147 483 647)(0,4 294 967 295)valor entero grande
BIGINT8  bytes(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)valor entero极大
FLOAT4  bytes(-3.402 823 466 E+38,-1.175 494 351 E-38) 0, (1.175 494 351 E-38,3.402 823 466 351 E+38)0, (1.175 494 351 E-38,3.402 823 466 E+38)punto flotante simple
valores de coma flotante
DOUBLE8  bytes(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308) 0, (2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0, (2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)doble precisión
valores de coma flotante
DECIMALpara DECIMAL(M,D), si M>D, es M+2de lo contrario es D+2depende de los valores de M y Ddepende de los valores de M y Dnúmeros decimales

tipos de fecha y hora

Los tipos de fecha y hora que representan valores de tiempo son DATETIME, DATE, TIMESTAMP, TIME y YEAR.

Cada tipo de tiempo tiene un rango de valores válidos y un valor "cero", que se utiliza cuando se especifica un valor no válido que MySQL no puede representar.

El tipo TIMESTAMP tiene características de actualización automática exclusivas, que se describirán más adelante.

tipostamaño
(bytes)
rangoformatousos
DATE31000-01-01/9999-12-31YYYY-MM-DDvalor de fecha
TIME3'-838:59:59'/'838:59:59'HH:MM:SSvalor de tiempo o duración
YEAR11901/2155YYYYvalor de año
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SSvalores mixtos de fecha y hora
TIMESTAMP4

1970-01-01 00:00:00/2038

la hora de finalización es el 2147483647 segundo, tiempo de Beijing 2038-1-19 11:14:07,tiempo estándar de Greenwich 2038año1mes19día, medianoche 03:14:07

YYYYMMDD HHMMSSvalores mixtos de fecha y hora, marca de tiempo

tipos de cadena

los tipos de cadena incluyen CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM y SET. Esta sección describe cómo funcionan estos tipos y cómo se utilizan en las consultas.

tipostamañousos
CHAR0-255 bytescadena de longitud fija
VARCHAR0-65535 bytescadena de longitud variable
TINYBLOB0-255 bytesno excede 255 cadena binaria de un caracter
TINYTEXT0-255 bytescadena de texto corta
BLOB0-65 535 bytestexto largo en forma binaria
TEXT0-65 535 bytestexto largo
MEDIUMBLOB0-16 777 215 bytestexto de longitud media en forma binaria
MEDIUMTEXT0-16 777 215 bytestexto de longitud media
LONGBLOB0-4 294 967 295 bytesDatos de texto masivos en forma binaria
LONGTEXT0-4 294 967 295 bytesDatos de texto masivos

Nota:char(n) y varchar(n) entre paréntesis, n representa la cantidad de caracteres, no la cantidad de bytes, por ejemplo, CHAR(30) puede almacenarse 30 caracteres.

CHAR y VARCHAR son similares, pero tienen diferentes formas de guardar y recuperar. Diferencian en la longitud máxima y si se conservan los espacios en blanco al final, entre otros. No se realiza una conversión de mayúsculas y minúsculas durante el almacenamiento o la recuperación.

BINARY y VARBINARY son similares a CHAR y VARCHAR, pero contienen cadenas binarias en lugar de cadenas no binarias. Es decir, contienen cadenas de bytes en lugar de cadenas de caracteres. Esto significa que no tienen conjunto de caracteres y la clasificación y comparación se basan en el valor numérico de los bytes del valor de la columna.

BLOB es un objeto de gran tamaño binario, que puede contener una cantidad variable de datos. Hay 4 Tipos BLOB: TINYBLOB, BLOB, MEDIUMBLOB y LONGBLOB. Diferencian entre rangos de almacenamiento diferentes.

Hay 4 Tipos TEXT: TINYTEXT, TEXT, MEDIUMTEXT y LONGTEXT. Los correspondientes a esto 4 Tipos BLOB, la longitud máxima que pueden almacenar es diferente, y se puede elegir según las circunstancias reales.