Capítulo 7. Consultas

PostgreSQL 14.5: Consultas

Sumário
7.1. Visão geral
7.2. Expressões de tabela
7.2.1. A cláusula FROM
7.2.2. A cláusula WHERE
7.2.3. As cláusulas GROUP BY e HAVING
7.3. Listas de seleção
7.3.1. Itens da lista de seleção
7.3.2. Rótulos de coluna
7.3.3. DISTINCT
7.4. Combinação de consultas
7.5. Ordenação de linhas
7.6. LIMIT e OFFSET

Os capítulos anteriores explicaram como criar tabelas, como preenchê-las com dados, e como manipular estes dados. Agora, finalmente, é mostrado como trazer estes dados para fora do banco de dados.

7.1. Visão geral

O processo de trazer, ou o comando para trazer os dados armazenados no banco de dados, é chamado de consulta. No SQL, o comando SELECT é utilizado para especificar consultas. A sintaxe geral do comando SELECT é

SELECT lista_de_seleção FROM expressão_de_tabela [especificação_da_ordenação]

As próximas seções descrevem em detalhes a lista de seleção, a expressão de tabela, e a especificação da ordenação.

O tipo mais simples de consulta possui a forma:

SELECT * FROM tabela1;

Supondo existir uma tabela chamada tabela1, este comando traz todas as linhas e todas as colunas da tabela1. A forma de trazer depende do aplicativo cliente. Por exemplo, o aplicativo psql exibe uma tabela ASCII formatada na tela, enquanto as bibliotecas cliente disponibilizam funções para extrair valores individuais do resultado da consulta. A especificação da lista de seleção * significa todas as colunas que a expressão de tabela possa fornecer. A lista de seleção também pode selecionar um subconjunto das colunas disponíveis, ou efetuar cálculos utilizando as colunas. Por exemplo, se a tabela1 possuir colunas chamadas a, b e c (e talvez outras), poderá ser feita a seguinte consulta:

SELECT a, b + c FROM tabela1;

(Supondo que b e c possuem um tipo de dado numérico). Consulte a Seção 7.3 para obter mais detalhes.

FROM tabela1 é um tipo particularmente simples de expressão de tabela: lê apenas uma única tabela. De uma forma geral, as expressões de tabela podem ser construções complexas contendo tabelas base, junções e subconsultas. Mas a expressão de tabela pode ser totalmente omitida, quando se deseja utilizar o comando SELECT como uma calculadora:

SELECT 3 * 4;

É mais útil quando as expressões da lista de seleção retornam resultados variáveis. Por exemplo, uma função pode ser chamada deste modo:

SELECT random();
SourceForge.net Logo CSS válido!