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