Capítulo 8. Tipos de dados

Índice

8.1. Tipos de dados numéricos
8.1.1. Tipos de dados inteiros
8.1.2. Tipos de dados de número de precisão arbitrária
8.1.3. Tipos de dados de ponto flutuante
8.1.4. Tipos de dados seriais
8.2. Tipo de dados monetário
8.2.1. Exemplo
8.3. Tipos de dados de cadeia de caracteres
8.3.1. Exemplo
8.4. Tipo de dados binário
8.4.1. Formato hex de bytea
8.4.2. Formato escape de bytea
8.4.3. Exemplo
8.5. Tipos de dados de data e hora
8.5.1. Entrada de data e hora
8.5.2. Saída de data e hora
8.5.3. Zonas horárias
8.5.4. Entrada de intervalo
8.5.5. Saída de intervalo
8.6. Tipo de dados booleano
8.6.1. Exemplo
8.7. Tipos de dados enum
8.7.1. Declaração dos tipos de dados enum
8.7.2. Ordem de classificação
8.7.3. Segurança do tipo de dados
8.7.4. Detalhes de implementação
8.7.5. Exemplo
8.8. Tipos de dados geométricos
8.8.1. Pontos
8.8.2. Linhas
8.8.3. Segmentos de linha
8.8.4. Caixas
8.8.5. Caminhos
8.8.6. Polígonos
8.8.7. Círculos
8.9. Tipos de dados de endereço de rede
8.9.1. inet
8.9.2. cidr
8.9.3. inet versus cidr
8.9.4. macaddr
8.9.5. macaddr8
8.10. Tipos de dados de cadeia de bits
8.11. Tipos de dados de procura de texto completo
8.11.1. tsvector
8.11.2. tsquery
8.11.3. Exemplo
8.12. Tipo de dados UUID
8.13. Tipo de dados XML
8.13.1. Criação de valores XML
8.13.2. Tratamento da codificação
8.13.3. Acesso aos valores XML
8.13.4. Exemplo
8.14. Tipos de dados JSON
8.14.1. Sintaxe de entrada e saída do JSON
8.14.2. Projeto de documentos JSON
8.14.3. jsonb - Contém (⊃) e Existe (∃)
8.14.4. jsonb - Indexação
8.14.5. jsonb - Índice dos elementos
8.14.6. Transformações
8.14.7. Tipo de dados jsonpath
8.14.8. Exemplo
8.15. Tipos de dados matriz
8.15.1. Declaração dos tipos de dados matriz
8.15.2. Entrada dos valores da matriz
8.15.3. Acesso às matrizes
8.15.4. Modificação de matrizes
8.15.5. Procura em matrizes
8.15.6. Sintaxe de entrada e de saída das matrizes
8.16. Tipos de dados compostos
8.16.1. Declaração de tipos de dados compostos
8.16.2. Construção de valores compostos
8.16.3. Acesso a tipos de dados compostos
8.16.4. Modificação de tipos de dados compostos
8.16.5. Uso de tipos de dados compostos em consultas
8.16.6. Sintaxe de entrada e saída dos tipos de dados compostos
8.17. Tipos de dados de intervalo
8.17.1. Tipos intervalo e multi-intervalo nativos
8.17.2. Exemplos
8.17.3. Limites inclusivos e exclusivos
8.17.4. Intervalos infinitos (sem limites)
8.17.5. Entrada e saída de limite
8.17.6. Construção de intervalos e multi-intervalos
8.17.7. Tipos intervalo discretos
8.17.8. Definição de novos tipos de dados de intervalo
8.17.9. Indexação
8.17.10. Restrições em intervalos
8.18. Tipos de dados de domínio
8.19. Tipos de dados de identificador de objeto
8.20. Tipo de dados pg_lsn
8.21. Pseudotipos

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

NomeAliasesDescrição
bigintint8inteiro de oito bytes com sinal
bigserialserial8inteiro de oito bytes com autoincremento
bit [ (n) ] cadeia de bits de comprimento fixo
bit varying [ (n) ]varbit [ (n) ]cadeia de bits de comprimento variável
booleanboolbooleano lógico (verdade/falso)
box caixa retangular no plano
bytea dados binários (matriz de bytes)
character [ (n) ]char [ (n) ]cadeia de caracteres de comprimento fixo
character varying [ (n) ]varchar [ (n) ]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 precisionfloat8número de ponto flutuante de precisão dupla (8 bytes)
inet endereço de hospedeiro IPv4 ou IPv6
integerint, int4inteiro de quatro bytes com sinal
interval [ campos ] [ (p) ] 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 [ (p, s) ]decimal [ (p, s) ]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
realfloat4número de ponto flutuante de precisão simples (4 bytes)
smallintint2inteiro de dois bytes com sinal
smallserialserial2inteiro de dois bytes com autoincremento
serialserial4inteiro de quatro bytes com autoincremento
text cadeia de caracteres de comprimento variável
time [ (p) ] [ sem zona horária ] hora do dia (sem zona horária)
time [ (p) ] com zona horáriatimetzhora do dia, incluindo a zona horária
timestamp [ (p) ] [ sem zona horária ] data e hora (sem zona horária)
timestamp [ (p) ] com zona horáriatimestamptzdata 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

Compatibilidade

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.

Contato

CSS válido!