Tipo Tamanho do Armazenamento Descrição Faixa de Valores
smallint 2 bytes inteiro com faixa pequena -32768 a +32767
integer 4 bytes escolha usual para inteiro -2147483648 a +2147483647
bigint 8 bytes inteiro com faixa larga -9223372036854775808 a 9223372036854775807
decima lvariável precisão especificada pelo usuário, exato sem limite
numeric variável precisão especificada pelo usuário, exato sem limite
real 4 bytes precisão variável, inexato precisão de 6 dígitos decimais
double precision 8 bytes precisão variável, inexato precisão de 15 dígitos decimais
serial 4 bytes inteiro com auto-incremento 1 a 2147483647
bigserial 8 bytes inteiro grande com auto-incremento 1 a 9223372036854775807
Questão semelhante: Q617466 - São vários os tipos de dados numéricos no PostgreSQL. O tipo
a) smallint tem tamanho de armazenamento de 1 byte, que permite armazenar a faixa de valores inteiros de −128 a 127.
b) bigint é a escolha usual para números inteiros, pois oferece o melhor equilíbrio entre faixa de valores, tamanho de armazenamento e desempenho.
c) integer tem tamanho de armazenamento de 4 bytes e pode armazenar valores na faixa de −32768 a 32767.
d) numeric pode armazenar números com precisão variável de, no máximo, 100 dígitos.
e) serial é um tipo conveniente para definir colunas identificadoras únicas, semelhante à propriedade auto incremento.