Tipos numéricos
Last updated
Was this helpful?
Last updated
Was this helpful?
O MySQL, , suportam os padrões SQL INTEGER
(INT
é um sinônimo para INTEGER
) e SMALLINT
e oferecem, ainda os tipos TINYINT
, MEDIUMINT
e BIGINT
, cujas características são descritas na tabela abaixo, adaptada da documentação oficial. Nota-se que os valores mínimos para o tipo numéricos UNSIGNED
– sem sinal, ou seja, positivos – tem como valor mínimo 0.
TINYINT
-128 a 127
0 a 255
SMALLINT
-32768 a 32767
0 a 65535
MEDIUMINT
-8388608 a 8388607
0 a 16777215
INT
ou INTEGER
-2147483648 a 2147483647
0 a 4294967295
BIGINT
-2^63 a 2^63 - 1
0 a 2^64 - 1
Existem também os tipos BOOL
e o sinônimo BOOLEAN
, que são armazenados como zero, representando o valor falso, e qualquer valor diferente pode ser considerado verdadeiro.
Spoiler alert:
Usando nosso querido , você vai observar que, ao elaborar um diagrama EER, quando tentar inserir uma coluna do tipo BOOL
ou BOOLEAN
, a ferramenta mudará esse valor para o tipo TINYINT
.
Além dos tipos apresentados acima, temos também o tipo BIT
, compatíveis com engines de armazenamento , , e , segundo a documentação do MySQL; colunas deste tipo armazenam valores binários, no qual podemos passar como argumento um número de 1 (que, por sinal, é o valor padrão) a 64, que representa o tamanho.
A propriedade numérica ZEROFILL
, no MySQL, preenche uma coluna com zeros à esquerda do número cujo dado do tipo inteiro tem um tamanho N
especificado -- INT(N)
--, seguindo a palavra reservada INT
.
Nota:
A partir do MySQL 8.0.17, a propriedade ZEROFILL
e o atributo de largura de exibição para tipos de dados inteiros estão obsoletos, sendo necessário o uso de outros artifícios para produzir os mesmos efeitos.
Importante pontuar que o atributo ZEROFILL
, uma vez utilizado, implica o uso automático de outra propriedade: UNSIGNED
.
A propriedade UNSIGNED
, , "pode ser usada para permitir apenas números não negativos numa coluna ou quando você precisa de um conjunto muito maior de números para uma coluna", uma vez que, como mostra a tabela 1, um inteiro SIGNED
– propriedade padrão – consegue armazenar números entre -2147483648 e 2147483647, enquanto, com a propriedade UNSIGNED
, esse intervalo vai de 0 a 4294967295.
No MySQL, temos um tipo numérico de ponto fixo, com valores exatos, representado pelo tipo DECIMAL
, que tem como sinônimos os tipos DEC
e FIXED
. Há, ainda, o tipo NUMERIC
, que no MySQL funciona da mesma maneira que o tipo DECIMAL
, , e "esses tipos são usados quanto é importante preservar a precisão exata" do dado a ser armazenado.
Os tipos FLOAT
e DOUBLE
correspondem a dados numéricos aproximados, que podem ser de precisão simples ou dupla. Para o tipo de precisão simples, FLOAT
, do MySQL, opcionalmente, é possível definir a precisão em bits (p
) na sequência da palavra-chave: FLOAT(p)
, seguindo o padrão SQL. Para efeitos práticos, isso permite que uma coluna do tipo FLOAT
tenha dupla precisão, ou seja, funcione como uma coluna do tipo DOUBLE
.
MONTEIRO, Lucas. MySQL — Tipos de dados: Introdução e dados numéricos (1 de 3). Disponível em: . Acesso em 06 Abr. 2023.
MySQL Data Types. Disponível em: . Acesso em:
MySQL Numeric type attributes. Disponível em: . Acesso em:
.