Capítulo 4. Consultas

Índice
4.1. Visão geral
4.2. Expressão de tabela
4.2.1. A cláusula FROM
4.2.2. A cláusula WHERE
4.2.3. As cláusulas GROUP BY e HAVING
4.3. Listas de seleção
4.3.1. Itens da lista de seleção
4.3.2. Rótulos de coluna
4.3.3. DISTINCT
4.4. Combinação de consultas
4.5. Ordenação de linhas
4.6. LIMIT e OFFSET

Os capítulos anteriores explicaram como criar tabelas, como preenchê-las com dados, e como manipular estes dados. Neste capítulo será discutido como trazer estes dados para fora do banco de dados.

4.1. Visão geral

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

SELECT lista_seleção FROM expressão_tabela [especificação_ordenação]

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

O tipo mais simples de consulta possui a forma:

SELECT * FROM tabela1;

Supondo que exista a tabela chamada tabela1, este comando traz todas as linhas e todas as colunas da tabela1. A forma de trazer depende da aplicação cliente. Por exemplo, o programa psql exibe uma tabela ASCII na tela, enquanto as bibliotecas cliente possuem funções para obter linhas e colunas individualmente. O * especificado na lista de seleção significa todas as colunas que a expressão de tabela tem para oferecer. A lista de seleção também pode especificar um subconjunto das colunas disponíveis, ou efetuar cálculos utilizando as colunas. Por exemplo, se tabela1 possui colunas chamadas a, b e c (e talvez outras), pode 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 4.3 para obter mais detalhes.

FROM tabela1 é um tipo particularmente simples de expressão de tabela: lê apenas uma tabela. De modo geral, as expressões de tabela podem ser construções complexas de 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;

Isto é mais útil quando a expressão da lista de seleção retorna resultados variáveis. Por exemplo, uma função pode ser chamada deste modo:

SELECT random();