Pular para o conteúdo principal
Documentos
Sintaxe básicaFunções JSONAcionadoresGerenciamento de tabelas e esquemasFunções de cadeia de caracteresFunções matemáticasFunções de dataBancos de dadosÍndices

PostgreSQL SELECT

A instrução `SELECT` no PostgreSQL é usada para consultar e recuperar dados de uma ou mais tabelas. Esse comando SQL fundamental pode ser utilizado para buscar colunas específicas, aplicar condições e classificar o conjunto de dados resultante.

Uso

O comando `SELECT` é usado sempre que os dados precisam ser extraídos de um banco de dados. Geralmente, ela é combinada com outras cláusulas, como `WHERE`, `ORDER BY` e `GROUP BY`, para refinar e organizar o resultado.

sql
SELECT column1, column2, ...
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, ...];

Nessa sintaxe, `SELECT` especifica as colunas a serem recuperadas e `FROM nome_da_tabela` indica a tabela de origem. Outras cláusulas opcionais podem refinar ainda mais a consulta.

Exemplos

1. Seleção básica

sql
SELECT *
FROM products;

Essa consulta recupera todas as colunas da tabela `products`, fornecendo a você uma visão completa de cada entrada.

2. Seleção de colunas específicas com uma condição

sql
SELECT name, price
FROM products
WHERE price > 100;

Este exemplo seleciona apenas as colunas `name` e `price` da tabela `products` em que o preço é maior que 100, filtrando os resultados.

3. Consulta com classificação

sql
SELECT name, price
FROM products
WHERE price > 100
ORDER BY price DESC;

Aqui, o comando `SELECT` não apenas filtra os registros por preço, mas também classifica os resultados em ordem decrescente da coluna `price`, permitindo a visualização priorizada dos itens de preço mais alto.

4. Manipulação de valores NULL

sql
SELECT name, price
FROM products
WHERE price IS NOT NULL;

Essa consulta recupera nomes e preços de produtos, excluindo todas as entradas em que o preço é `NULL`.

5. Usando DISTINCT para remover duplicatas

sql
SELECT DISTINCT category
FROM products;

Essa consulta retorna uma lista de categorias exclusivas da tabela `produtos`, removendo todas as entradas duplicadas.

6. Limitação de resultados com LIMIT e OFFSET

sql
SELECT name, price
FROM products
ORDER BY price DESC
LIMIT 10 OFFSET 5;

Este exemplo recupera dez produtos a partir do sexto, classificados em ordem decrescente por preço.

7. Juntando tabelas

sql
SELECT orders.id, customers.name
FROM orders
JOIN customers ON orders.customer_id = customers.id;

Essa consulta recupera IDs de pedidos e nomes de clientes unindo as tabelas `orders` e `customers` em seus respectivos IDs.

Dicas e práticas recomendadas

  • Selecione apenas as colunas necessárias. Evite usar `SELECT *` em consultas de produção para minimizar o uso de recursos e aumentar o desempenho.
  • Combine com condições de filtragem. Use a cláusula `WHERE` para limitar os resultados apenas àqueles relevantes para suas necessidades.
  • Use aliases para maior clareza. Implemente aliases de tabelas e colunas para melhorar a legibilidade, especialmente em consultas complexas. Por exemplo:
    sql
        SELECT p.name AS product_name, c.name AS category_name
        FROM products p
        JOIN categories c ON p.category_id = c.id;
        
  • Use a classificação e o agrupamento com sabedoria. Use `ORDER BY` e `GROUP BY` para organizar os dados de forma lógica e melhorar a análise de dados.
  • Entenda a indexação. Esteja ciente das colunas indexadas, pois selecioná-las pode aumentar significativamente o desempenho da consulta.
  • Trate as duplicatas e os NULLs com cuidado. Use `DISTINCT` para remover duplicatas e `IS NULL`/`IS NOT NULL` para gerenciar valores `NULL` de forma eficaz.
  • Cuidado com consultas complexas. Esteja atento aos impactos no desempenho, especialmente ao lidar com grandes conjuntos de dados ou ao omitir índices. Considere a possibilidade de dividir consultas complexas para aumentar a eficiência.