7.1. Visão geral #

O processo de recuperação, ou o comando para recuperar dados de um banco de dados, é chamado de consulta. Na linguagem SQL, o comando SELECT é usado para especificar consultas. A sintaxe geral do comando SELECT é

[WITH consultas] SELECT lista_de_seleção FROM expressão_de_tabela [especificação_de_ordenação]

As seções a seguir descrevem os detalhes da lista de seleção, a expressão de tabela e a especificação de ordenação. As consultas WITH são tratadas por último, porque são um recurso avançado.

Um tipo simples de consulta tem a forma:

SELECT * FROM tabela1;

Assumindo que exista uma tabela chamada tabela1, o comando acima recuperaria todas as linhas e todas as colunas definidas pelo usuário presentes na tabela1. (O método de recuperação depende da aplicação cliente. Por exemplo, o programa psql exibirá uma tabela ASCII-art na tela, enquanto as bibliotecas cliente oferecerão funções para extrair valores individualmente do resultado da consulta.) A especificação da lista de seleção como sendo um * significa todas as colunas que a expressão de tabela fornece. Uma lista de seleção também pode selecionar um subconjunto das colunas disponíveis, ou fazer cálculos usando as colunas. Por exemplo, se a tabela1 possuir colunas chamadas a, b e c (e talvez outras), então será possível fazer a seguinte consulta:

SELECT a, b + c FROM tabela1;

(assumindo que b e c possuem tipo de dados numérico) Veja a Seção 7.3 para obter mais detalhes.

FROM tabela1 é um tipo simples de expressão de tabela: lê apenas uma tabela. Em geral, as expressões de tabela podem ser construções complexas de tabelas-base, junções e subconsultas. Mas também é possível omitir inteiramente a expressão de tabela, e usar o comando SELECT como uma calculadora:

SELECT 3 * 4;

Isto é mais útil quando as expressões na lista de seleção retornam resultados variados. Por exemplo, pode-se chamar uma função dessa forma:

SELECT random();