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.
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();