Uma das tarefas mais comuns, quando você trabalha com o banco de dados, é consultar dados de tabelas usando a instrução SELECT
.
A instrução SELECT
é uma das instruções mais complexas do PostgreSQL. Ele contém muitas cláusulas que você pode usar para formar uma consulta flexível.
Por causa de sua complexidade, iremos dividi-lo em muitos tutoriais mais curtos e fáceis de entender para que você possa aprender sobre cada cláusula mais rapidamente.
A declaração SELECT
contém as seguintes cláusulas:
- Selecione linhas distintas usando o operador
DISTINCT
. - Classifique as linhas usando a cláusula
ORDER BY
. - Filtre as linhas usando uma cláusula
WHERE
. - Selecione um subconjunto de linhas de uma tabela usando a cláusula
LIMIT
ouFETCH
. - Agrupe as linhas em grupos usando a cláusula
GROUP BY
. - Filtre grupos usando cláusula
HAVING
. - Agrupe tabelas utilizando
INNER JOIN
,LEFT JOIN
,FULL OUTER JOIN
eCROSS JOIN
. - Executar operações set usando
UNION
,INTERSECT
eEXCEPT
.
Neste tutorial, você se concentrará nas cláusulas SELECT
e FROM
.
SELECT
Sintaxe da instrução PostgreSQL
Vamos começar com a forma básica da instrução SELECT
que recupera dados de uma única tabela.
A instrução abaixo ilustra a sintaxe da SELECT
:
SELECT
select_list
FROM
table_name;
Vamos examinar a declaração SELECT
com mais detalhes:
- Primeiro, especifique uma lista de seleção que pode ser uma coluna ou uma lista de colunas em uma tabela da qual você deseja recuperar dados. Se você especificar uma lista de colunas, será necessário colocar uma vírgula (
,
) entre as duas colunas para separá-las. Se você deseja selecionar dados de todas as colunas da tabela, você pode usar uma abreviação de asterisco (*) em vez de especificar todos os nomes de coluna. A lista de seleção também pode conter expressões ou valores literais. - Em segundo lugar, especifique o nome da tabela da qual deseja consultar os dados após a palavra – chave FROM.
A cláusula FROM
é opcional. Se você não consultar dados de nenhuma tabela, pode omitir a cláusula FROM
na instrução SELECT
.
O PostgreSQL avalia a cláusula FROM
antes da cláusula SELECT
na instrução:

Observe que as palavras-chave SQL não diferenciam maiúsculas de minúsculas. Isso significa que SELECT
é equivalente a select
ou Select
. Por convenção, usaremos todas as palavras-chave SQL em maiúsculas para tornar as consultas mais fáceis de ler.
SELECT
– Exemplos de PostgreSQL
Vamos dar uma olhada em alguns exemplos de uso da instrução SELECT
no PostgreSQL .
Usaremos a tabela cliente
a seguir no banco de dados de exemplo para a demonstração.

1) Usando a instrução SELECT
no PostgreSQL para consultar dados de um exemplo de coluna
Este exemplo usa a instrução SELECT
para encontrar os primeiros nomes de todos os clientes da tabela clientes
:
SELECT primeiro_nome FROM clientes;
Aqui está a saída parcial:

Observe que adicionamos um ponto-e-vírgula ( ;
) ao final da instrução SELECT
. O ponto-e-vírgula não faz parte da instrução SQL. É usado para sinalizar ao PostgreSQL o fim de uma instrução SQL. O ponto-e-vírgula também é usado para separar duas instruções SQL.

2) Usando a instrução SELECT
no PostgreSQL para consultar dados de um exemplo de múltiplas colunas
Suponha que você queira apenas saber o nome, sobrenome e e-mail dos clientes, você pode especificar esses nomes de coluna na cláusula SELECT
conforme mostrado na seguinte consulta:
SELECT
primeiro_nome,
ultimo_nome,
email
FROM
clientes;

3) Usando a instrução SELECT
no PostgreSQL para consultar dados de todas as colunas de uma tabela;
A consulta a seguir usa a instrução SELECT
para selecionar dados de todas as colunas da tabela clientes
:
SELECT * FROM clientes;

Neste exemplo, usamos um asterisco ( *
) na cláusula SELECT
, que é uma abreviação para todas as colunas. Em vez de listar todas as colunas na cláusula SELECT
, apenas usamos o asterisco ( *
) para economizar alguma digitação.
No entanto, não é uma boa prática usar o asterisco ( *
) na instrução SELECT
ao incorporar instruções SQL no código do aplicativo como Python , Java , Node.js ou PHP devido aos seguintes motivos:
- Desempenho do banco de dados. Suponha que você tenha uma tabela com muitas colunas e muitos dados, a instrução
SELECT
com a abreviação asterisco (*) selecionará dados de todas as colunas da tabela, que podem não ser necessários para o aplicativo. - Desempenho do aplicativo. A recuperação de dados desnecessários do banco de dados aumenta o tráfego entre o servidor de banco de dados e o servidor de aplicativos. Consequentemente, seus aplicativos podem ser mais lentos para responder e menos escalonáveis.
Por esses motivos, é uma boa prática especificar explicitamente os nomes das colunas na cláusula SELECT
sempre que possível para obter apenas os dados necessários do banco de dados.
E você só deve usar a abreviação de asterisco (*) para as consultas ad-hoc que examinam os dados do banco de dados.
4) Usando a instrução SELECT
bo PostgreSQL com exemplos de expressões
O exemplo a seguir usa a instrução SELECT
para retornar nomes completos e e-mails de todos os clientes:
SELECT
primeiro_nome || ' ' || ultimo_nome,
email
FROM
clientes;
Resultado:

Neste exemplo, usamos o operador ||
de concatenação para concatenar o nome, espaço e sobrenome de cada cliente.
Você aprenderá a usar apelidos de coluna para atribuir nomes mais significativos a expressões no próximo tutorial.
5) Usando a instrução SELECT
no PostgreSQL com exemplos de expressões
O exemplo a seguir usa a instrução SELECT
com uma expressão. Omite a cláusula FROM
:
SELECT 5 * 40;
Aqui está o resultado:

Neste tutorial, você aprendeu como usar uma forma básica da instrução SELECT
no PostgreSQL para consultar dados de uma única tabela.