4

Consultando Dados (SELECT)

Fundamentos • 50 minutos • Iniciante

Aprenda a recuperar e visualizar dados das suas tabelas usando o comando SELECT, desde consultas simples até filtros e ordenação.

Objetivos de Aprendizagem

Sintaxe Básica do SELECT

O comando SELECT é usado para recuperar dados de uma ou mais tabelas. É como fazer uma pergunta ao banco de dados: "Me mostre essas informações".

SELECT colunas
FROM nome_da_tabela
WHERE condições
ORDER BY coluna
LIMIT quantidade;

Estrutura do comando:

  • SELECT: Quais colunas queremos ver
  • FROM: De qual tabela
  • WHERE: Filtros (opcional)
  • ORDER BY: Como ordenar (opcional)
  • LIMIT: Quantos registros mostrar (opcional)

Exemplo Mais Simples

-- Selecionar todas as colunas de todos os produtos
SELECT * FROM produtos;

O asterisco (*) significa "todas as colunas"

É útil para ver rapidamente todos os dados, mas em produção é melhor especificar as colunas necessárias.

Selecionando Colunas Específicas

Em vez de usar *, você pode especificar exatamente quais colunas quer ver. Isso é mais eficiente e organizado.

Uma coluna

SELECT nome FROM produtos;

Resultado: Apenas os nomes dos produtos

Múltiplas colunas

SELECT nome, preco, categoria 
FROM produtos;

Resultado: Nome, preço e categoria de cada produto

💡 Dica de Performance:

Sempre selecione apenas as colunas que você realmente precisa. Isso economiza banda de rede e melhora a performance, especialmente em tabelas grandes.

Usando Aliases (Apelidos)

Você pode dar nomes mais amigáveis às colunas usando AS:

SELECT 
    nome AS produto,
    preco AS valor,
    em_estoque AS disponivel
FROM produtos;
produto valor disponivel
Notebook Dell 2500.00 true

Filtrando com WHERE

A cláusula WHERE permite filtrar os dados, mostrando apenas os registros que atendem a certas condições.

Operadores de Comparação

= Igual a
WHERE preco = 100
> Maior que
WHERE preco > 1000
< Menor que
WHERE preco < 500
>=, <=, != Maior/igual, menor/igual, diferente

Operadores de Texto

LIKE Busca por padrão
WHERE nome LIKE '%Dell%'
ILIKE LIKE sem case-sensitive
WHERE nome ILIKE '%dell%'
IN Está na lista
WHERE categoria IN ('Casa', 'Jardim')

Combinando Condições

AND - Todas as condições devem ser verdadeiras:

SELECT * FROM produtos 
WHERE preco > 100 AND categoria = 'Eletrônicos';

OR - Pelo menos uma condição deve ser verdadeira:

SELECT * FROM produtos 
WHERE categoria = 'Casa' OR categoria = 'Jardim';

Usando parênteses para agrupar:

SELECT * FROM produtos 
WHERE (categoria = 'Casa' OR categoria = 'Jardim') 
  AND preco < 200;

Ordenando com ORDER BY

Use ORDER BY para organizar os resultados em uma ordem específica.

Ordem Crescente (ASC)

SELECT nome, preco 
FROM produtos 
ORDER BY preco ASC;

Resultado: Do mais barato ao mais caro

ASC é opcional (padrão)

Ordem Decrescente (DESC)

SELECT nome, preco 
FROM produtos 
ORDER BY preco DESC;

Resultado: Do mais caro ao mais barato

Ordenação por Múltiplas Colunas

SELECT nome, categoria, preco 
FROM produtos 
ORDER BY categoria ASC, preco DESC;

Como funciona:

  1. 1. Primeiro ordena por categoria (A-Z)
  2. 2. Dentro de cada categoria, ordena por preço (maior-menor)

Limitando Resultados com LIMIT

Use LIMIT para controlar quantos registros são retornados. Muito útil para paginação e performance.

LIMIT simples

SELECT * FROM produtos 
LIMIT 5;

Resultado: Apenas os primeiros 5 produtos

LIMIT com OFFSET

SELECT * FROM produtos 
LIMIT 5 OFFSET 10;

Resultado: 5 produtos, pulando os primeiros 10

Útil para paginação

Exemplo Prático: Top 3 Produtos Mais Caros

SELECT nome, preco 
FROM produtos 
ORDER BY preco DESC 
LIMIT 3;

Explicação passo a passo:

  1. 1. Seleciona nome e preço de todos os produtos
  2. 2. Ordena por preço do maior para o menor
  3. 3. Mostra apenas os 3 primeiros resultados

Exercício Prático

Vamos praticar consultas!

Complete os comandos SELECT para responder às perguntas:

1. Como selecionar apenas nome e preço de todos os produtos?

SELECT _______, _______ FROM produtos;

2. Como buscar produtos com preço maior que 1000?

SELECT * FROM produtos WHERE preco _______ _______;

3. Como ordenar produtos por preço do menor para o maior?

SELECT * FROM produtos ORDER BY _______ _______;

4. Qual comando busca produtos que contenham "Dell" no nome?

Padrões Comuns de Consulta

🔍 Busca por texto

WHERE nome ILIKE '%busca%'

Busca case-insensitive

📊 Top N registros

ORDER BY coluna DESC LIMIT 10

Os 10 maiores valores

📅 Filtro por data

WHERE data_criacao >= '2024-01-01'

Registros de 2024 em diante

💰 Faixa de valores

WHERE preco BETWEEN 100 AND 500

Preços entre 100 e 500

❌ Valores nulos

WHERE categoria IS NOT NULL

Apenas registros com categoria

📋 Lista de valores

WHERE categoria IN ('Casa', 'Jardim')

Múltiplas categorias

Resumo da Aula

  • SELECT recupera dados das tabelas
  • WHERE filtra registros com base em condições
  • ORDER BY organiza os resultados
  • LIMIT controla a quantidade de registros retornados
  • Operadores como LIKE, IN, BETWEEN facilitam filtros complexos
Aula Anterior: Inserindo Dados Próxima Aula: Relacionamentos