3.4.2. Tipo de dados numérico
Os tipos de dados numérico incluem números inteiros de vários tamanhos (INTEGER ou INT, BIG INT, SMALLINT e TINYINT) e números de ponto flutuante (reais) de várias precisões (FLOAT ou REAL e DOUBLE PRECISION). O formato dos números pode ser declarado usando DECIMAL (i, j) — ou NUMERIC (i, j) — onde i, a precisão, é o número total de dígitos decimais e j, a escala, é o número de dígitos após o ponto decimal. O valor padrão para a escala é zero, e para a precisão, é definido pela implementação. Vejamos alguns detalhes técnicos:
Padrões para números inteiros:
| BIGINT |
Representa um número inteiro que vai de -2^63 (-9.223.372.036.854.775.808) a 2^63-1 (9.223.372.036.854.775.807), ocupa 4 bytes de armazenamento.
|
| INT |
Representa um número inteiro que vai de -2^31 (-2.147.483.648) a 2^31-1 (2.147.483.647), ocupa 4 bytes de armazenamento.
|
| SMALLINT |
Representa um número inteiro que vai de 2^15 (-32,768) a 2^15-1 (32,767), ocupa 2 bytes de armazenamento.
|
| TINYINT |
Representa um número inteiro que vai de 0 a 255, ocupa 1 byte de armazenamento.
|
Veja que na prática, para representar a idade de uma pessoa, basta declararmos o valor como TINYINT, pois ninguém possuirá mais de 255 anos de idade. Essas opções de escolha permitem que o modelador do banco de dados escolha aquela que é mais viável para o banco de dados. Por outro lado, a economia de espaço gerada no banco de dados é mínima ao se utilizar a opção TINYINT ao invés da INT, que é a padrão, por isso, na grande maioria das aplicações, não é necessário que o projetista fique preocupado em fazer a melhor escolha, a opção padrão satisfaz a quase todos os casos.