Índice
O PostgreSQL possui um rico conjunto de tipos de dados nativos disponível para os usuários. Os usuários podem adicionar novos tipos de dados ao PostgreSQL usando o comando CREATE TYPE.
A Tabela 8.1 mostra todos os tipos de dados nativos de propósito geral. A maioria dos nomes alternativos listados na coluna “Aliases” são os nomes utilizados internamente pelo PostgreSQL por motivos históricos. Além disso, estão disponíveis alguns tipos de dados usados internamente ou obsoletos, que não estão listados aqui.
Tabela 8.1. Tipos de dados
Nome | Aliases | Descrição |
---|---|---|
bigint | int8 | inteiro de oito bytes com sinal |
bigserial | serial8 | inteiro de oito bytes com autoincremento |
bit [ ( | cadeia de bits de comprimento fixo | |
bit varying [ ( | varbit [ ( | cadeia de bits de comprimento variável |
boolean | bool | booleano lógico (verdade/falso) |
box | caixa retangular no plano | |
bytea | dados binários (“matriz de bytes”) | |
character [ ( | char [ ( | cadeia de caracteres de comprimento fixo |
character varying [ ( | varchar [ ( | cadeia de caracteres de comprimento variável |
cidr | endereço de rede IPv4 ou IPv6 | |
circle | círculo no plano | |
date | data de calendário (ano, mês, dia) | |
double precision | float8 | número de ponto flutuante de precisão dupla (8 bytes) |
inet | endereço de hospedeiro IPv4 ou IPv6 | |
integer | int , int4 | inteiro de quatro bytes com sinal |
interval [ | intervalo de tempo | |
json | dados textuais JSON | |
jsonb | dados binários JSON, decomposto | |
line | linha infinita no plano | |
lseg | segmento de linha no plano | |
macaddr | endereço MAC (Media Access Control) | |
macaddr8 | endereço MAC (Media Access Control) (formato EUI-64) | |
money | quantia monetária | |
numeric [ ( | decimal [ ( | numérico exato com precisão selecionável |
path | caminho geométrico no plano | |
pg_lsn | Número de sequência do log (Log Sequence Number) do PostgreSQL | |
pg_snapshot | instantâneo (snapshot) do ID da transação no nível do usuário | |
point | ponto geométrico no plano | |
polygon | caminho geométrico fechado no plano | |
real | float4 | número de ponto flutuante de precisão simples (4 bytes) |
smallint | int2 | inteiro de dois bytes com sinal |
smallserial | serial2 | inteiro de dois bytes com autoincremento |
serial | serial4 | inteiro de quatro bytes com autoincremento |
text | cadeia de caracteres de comprimento variável | |
time [ ( | hora do dia (sem zona horária) | |
time [ ( | timetz | hora do dia, incluindo a zona horária |
timestamp [ ( | data e hora (sem zona horária) | |
timestamp [ ( | timestamptz | data e hora, incluindo a zona horária |
tsquery | consulta de procura de texto completo | |
tsvector | documento de procura de texto completo | |
txid_snapshot | instantâneo (snapshot) do ID da transação no nível do usuário (obsoleto; veja pg_snapshot ) | |
uuid | identificador universalmente único | |
xml | dados XML |
Os seguintes tipos de dados (ou a citação destes) são especificados
pelo padrão SQL: bigint
,
bit
, bit varying
, boolean
,
char
, character varying
,
character
, varchar
, date
,
double precision
, integer
, interval
,
numeric
, decimal
, real
,
smallint
, time
(com ou sem zona horária),
timestamp
(com ou sem zona horária),
xml
.
Cada tipo de dados possui uma representação externa determinada pelas suas funções de entrada e de saída. Muitos tipos de dados nativos possuem formato externo óbvio. Entretanto, muitos tipos de dados são únicos do PostgreSQL, como os caminhos geométricos, ou possuem vários formatos possíveis, como os tipos de dados data e hora. Algumas funções de entrada e saída não são invertíveis, ou seja, o resultado da função de saída pode perder precisão quando comparado com a entrada original.