English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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).
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.
tipos | tamanho | intervalo (com sinal) | intervalo (sem sinal) | usos |
---|---|---|---|---|
TINYINT | 1 byte | (-128,127) | (0,255) | valor inteiro pequeno |
SMALLINT | 2 bytes | (-32 768,32 767) | (0,65 535) | valor inteiro grande |
MEDIUMINT | 3 bytes | (-8 388 608,8 388 607) | (0,16 777 215) | valor inteiro grande |
INT ou INTEGER | 4 bytes | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | valor inteiro grande |
BIGINT | 8 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极大 |
FLOAT | 4 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 |
DOUBLE | 8 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 |
DECIMAL | para DECIMAL(M,D), se M>D, é M+2de outra forma é D+2 | depende dos valores de M e D | depende dos valores de M e D | número decimal |
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.
tipos | tamanho (bytes) | intervalo | formato | usos |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | valor de data |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | valor de tempo ou duração |
YEAR | 1 | 1901/2155 | YYYY | valor do ano |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | valores mistos de data e hora |
TIMESTAMP | 4 | 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 HHMMSS | valores mistos de data e hora, timestamp |
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.
tipos | tamanho | usos |
---|---|---|
CHAR | 0-255 bytes | cadeia de comprimento fixo |
VARCHAR | 0-65535 bytes | cadeia variável |
TINYBLOB | 0-255 bytes | não excede 255 cadeia binária de um caractere |
TINYTEXT | 0-255 bytes | cadeia de caracteres curta |
BLOB | 0-65 535 bytes | texto longo em formato binário |
TEXT | 0-65 535 bytes | texto longo |
MEDIUMBLOB | 0-16 777 215 bytes | texto de comprimento médio em formato binário |
MEDIUMTEXT | 0-16 777 215 bytes | texto de comprimento médio |
LONGBLOB | 0-4 294 967 295 bytes | Grandes dados textuais em formato binário |
LONGTEXT | 0-4 294 967 295 bytes | Grandes 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.