Parte II. A linguagem SQL

Esta parte descreve o uso da linguagem SQL no PostgreSQL. Começamos descrevendo a sintaxe geral do SQL, depois como criar tabelas, como preencher o banco de dados e como consultá-lo. A parte central lista os tipos de dados e funções disponíveis para uso em comandos SQL. Por fim, são abordados diversos aspectos importantes para o ajuste de um banco de dados.

As informações são organizadas de forma que um usuário iniciante possa acompanhá-las do começo ao fim e obter uma compreensão completa dos tópicos sem precisar consultar o conteúdo muitas vezes. Os capítulos foram concebidos para serem independentes, permitindo que usuários avançados os leiam individualmente, conforme sua preferência. As informações são apresentadas em formato narrativo com unidades temáticas. Os leitores que procuram por uma descrição completa de algum comando específico são encorajados a consultar a Parte VI.

Os leitores devem saber como se conectar a um banco de dados PostgreSQL e executar comandos SQL. Recomenda-se aos leitores que não estejam familiarizados com esses assuntos lerem primeiro a Parte I. Os comandos SQL são normalmente inseridos usando o terminal interativo psql do PostgreSQL, mas também podem ser usados outros programas com funcionalidades semelhantes.

Índice

4. Sintaxe da linguagem SQL
4.1. Estrutura léxica
4.2. Expressões de valor
4.3. Chamadas de função
5. Definição de dados
5.1. Fundamentos de tabela
5.2. Valores padrão
5.3. Colunas de identidade
5.4. Colunas geradas
5.5. Restrições
5.6. Colunas do sistema
5.7. Modificação de tabelas
5.8. Privilégios
5.9. Políticas de segurança de linha
5.10. Esquemas
5.11. Herança
5.12. Particionamento de tabela
5.13. Dados estrangeiros
5.14. Outros objetos de banco de dados
5.15. Acompanhamento de dependência
6. Manejo de dados
6.1. Inserção de dados
6.2. Atualização de dados
6.3. Exclusão de dados
6.4. Retorno dos dados das linhas modificadas
7. Consultas
7.1. Visão geral
7.2. Expressões de tabela
7.3. Listas de seleção
7.4. Combinação de consultas (UNION, INTERSECT, EXCEPT)
7.5. Ordenação de linhas (ORDER BY)
7.6. LIMIT e OFFSET
7.7. Listas VALUES
7.8. Consultas WITH (Expressões de tabela comuns)
8. Tipos de dados
8.1. Tipos de dados numérico
8.2. Tipo de dados monetário
8.3. Tipos de dados de cadeia de caracteres
8.4. Tipo de dados binário
8.5. Tipos de dados de data e hora
8.6. Tipo de dados booleano
8.7. Tipos de dados de enumeração
8.8. Tipos de dados geométrico
8.9. Tipos de dados de endereço de rede
8.10. Tipos de dados de cadeia de bits
8.11. Tipos de dados de procura de texto completo
8.12. Tipo de dados UUID
8.13. Tipo de dados XML
8.14. Tipos de dados JSON
8.15. Tipos de dados matricial
8.16. Tipos de dados compostos
8.17. Tipos de dados de intervalo
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
9. Funções e operadores
9.1. Operadores lógicos
9.2. Funções e operadores de comparação
9.3. Funções e operadores matemáticos
9.4. Funções e operadores de cadeia de caracteres
9.5. Funções e operadores de cadeia binária
9.6. Funções e operadores de cadeia de bits
9.7. Correspondência de padrões
9.8. Funções de formatação de tipo de dados
9.9. Funções e operadores de data e hora
9.10. Funções de suporte a tipos de dados enum (enumeração)
9.11. Funções e operadores geométricos
9.12. Funções e operadores de endereço de rede
9.13. Funções e operadores de procura de texto completo
9.14. Funções de UUID
9.15. Funções de XML
9.16. Funções e operadores de JSON
9.17. Funções de manejo de sequência
9.18. Expressões condicionais
9.19. Funções e operadores de matriz
9.20. Funções e operadores de intervalo e multi-intervalo
9.21. Funções de agregação
9.22. Funções de janela
9.23. Função de suporte à mesclagem
9.24. Expressões de subconsulta
9.25. Comparações de linha e de matriz
9.26. Funções que retornam conjunto
9.27. Funções e operadores de informação do sistema
9.28. Funções de administração do sistema
9.29. Funções de gatilho
9.30. Funções de gatilho de evento
9.31. Funções de informação de estatística
10. Conversão de tipo de dados
10.1. Visão geral
10.2. Operadores
10.3. Funções
10.4. Armazenamento de valor
10.5. UNION, CASE e construções relacionadas
10.6. Colunas de saída do SELECT
11. Índices
11.1. Introdução
11.2. Tipos de índice
11.3. Índices multicoluna
11.4. Índices e ORDER BY
11.5. Combinação de vários índices
11.6. Índices de unicidade
11.7. Índices de expressões
11.8. Índices parciais
11.9. Varreduras somente de índice e índices de cobertura
11.10. Classes e famílias de operadores
11.11. Índices e ordenações
11.12. Exame de uso do índice
12. Procura de texto completo
12.1. Introdução
12.2. Tabelas e índices
12.3. Controle da procura de texto completo
12.4. Funcionalidades adicionais
12.5. Analisadores
12.6. Dicionários
12.7. Exemplo de configuração
12.8. Teste e depuração da procura de texto completo
12.9. Tipos de índice preferidos
12.10. Suporte do psql
12.11. Limitações
13. Controle de concorrência
13.1. Introdução
13.2. Isolamento de transação
13.3. Bloqueio explícito
13.4. Verificações de consistência de dados no nível de aplicação
13.5. Tratamento de falhas de serialização
13.6. Advertências
13.7. Bloqueio e índices
14. Performance Tips
14.1. Using EXPLAIN
14.2. Statistics Used by the Planner
14.3. Controlling the Planner with Explicit JOIN Clauses
14.4. Populating a Database
14.5. Non-Durable Settings
15. Parallel Query
15.1. How Parallel Query Works
15.2. When Can Parallel Query Be Used?
15.3. Parallel Plans
15.4. Parallel Safety