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

Tipos de Dados MySQL

Definir o tipo de campo de dados no MySQL é muito importante para a otimização do seu banco de dados.

O MySQL suporta vários tipos, que podem ser大致mente divididos em três categorias: numéricos, datas/Tipos de tempo e strings (caracteres).

Tipos numéricos

O MySQL suporta todos os tipos de dados numéricos padrão SQL.

Esses tipos incluem tipos de dados numéricos estritos (INTEGER, SMALLINT, DECIMAL e NUMERIC), bem como tipos de dados numéricos aproximados (FLOAT, REAL e DOUBLE PRECISION).

A palavra-chave INT é sinônimo de INTEGER, e a palavra-chave DEC é sinônimo de DECIMAL.

O tipo BIT armazena valores de campo de bits e suporta tabelas MyISAM, MEMORY, InnoDB e BDB.

Como extensão do padrão SQL, o MySQL também suporta os tipos de inteiro TINYINT, MEDIUMINT e BIGINT. A tabela a seguir mostra o armazenamento e o intervalo necessários para cada tipo de inteiro.

tipostamanhointervalo (com sinal)intervalo (sem sinal)usos
TINYINT1 byte(-128,127)(0,255)valor inteiro pequeno
SMALLINT2 bytes(-32 768,32 767)(0,65 535)valor inteiro grande
MEDIUMINT3  bytes(-8 388 608,8 388 607)(0,16 777 215)valor inteiro grande
INT ou INTEGER4  bytes(-2 147 483 648,2 147 483 647)(0,4 294 967 295)valor inteiro 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 inteiro极大
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)ponto flutuante simples
valor de ponto flutuante
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)dupla precisão
valor de ponto flutuante
DECIMALpara DECIMAL(M,D), se M>D, é M+2de outra forma é D+2depende dos valores de M e Ddepende dos valores de M e Dnúmero decimal

tipos de data e hora

Os tipos de data e hora que representam valores de tempo são DATETIME, DATE, TIMESTAMP, TIME e YEAR.

Cada tipo de tempo tem um intervalo de valores válidos e um valor "zero", que é usado quando se especifica um valor ilegítimo que o MySQL não pode representar.

O tipo TIMESTAMP tem características exclusivas de atualização automática, que serão descritas em seguida.

tipostamanho
(bytes)
intervaloformatousos
DATE31000-01-01/9999-12-31YYYY-MM-DDvalor de data
TIME3'-838:59:59'/'838:59:59'HH:MM:SSvalor de tempo ou duração
YEAR11901/2155YYYYvalor do ano
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SSvalores mistos de data e hora
TIMESTAMP4

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

a hora de término é o 2147483647 segundo, Hora de Pequim 2038-1-19 11:14:07,GMT 2038ano1mês19dia, madrugada 03:14:07

YYYYMMDD HHMMSSvalores mistos de data e hora, timestamp

tipos de strings

os tipos de strings são CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM e SET. Esta seção descreve como esses tipos funcionam e como são usados em consultas.

tipostamanhousos
CHAR0-255 bytescadeia de comprimento fixo
VARCHAR0-65535 bytescadeia variável
TINYBLOB0-255 bytesnão excede 255 cadeia binária de um caractere
TINYTEXT0-255 bytescadeia de caracteres curta
BLOB0-65 535 bytestexto longo em formato binário
TEXT0-65 535 bytestexto longo
MEDIUMBLOB0-16 777 215 bytestexto de comprimento médio em formato binário
MEDIUMTEXT0-16 777 215 bytestexto de comprimento médio
LONGBLOB0-4 294 967 295 bytesGrandes dados textuais em formato binário
LONGTEXT0-4 294 967 295 bytesGrandes dados textuais

NotarAtenção: char(n) e varchar(n) dentro de colchetes, n representa o número de caracteres, não o número de bytes, por exemplo, CHAR(30) pode ser armazenado 30 caracteres.

CHAR e VARCHAR são semelhantes, mas diferem em como eles armazenam e recuperam dados. Eles também diferem em termos de comprimento máximo e se os espaços em branco no final são mantidos. Eles não realizam conversão de maiúsculas e minúsculas durante o armazenamento ou recuperação.

BINARY e VARBINARY são semelhantes a CHAR e VARCHAR, mas diferem em que eles contêm strings binárias em vez de strings não binárias. Isso significa que eles não têm conjunto de caracteres e a ordenação e comparação são baseadas no valor numérico dos bytes do valor da coluna.

BLOB é um objeto grande binário, que pode conter uma quantidade variável de dados. Tem 4 Existem vários tipos de BLOB: TINYBLOB, BLOB, MEDIUMBLOB e LONGBLOB. A diferença entre eles está no escopo de armazenamento que podem suportar.

Existem 4 Existem vários tipos de TEXT: TINYTEXT, TEXT, MEDIUMTEXT e LONGTEXT. Eles correspondem a 4 Existem vários tipos de BLOB, com diferentes tamanhos máximos de armazenamento, você pode escolher conforme necessário.