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
- Entender a sintaxe básica do comando SELECT
- Selecionar colunas específicas ou todas as colunas
- Filtrar dados usando WHERE
- Ordenar resultados com ORDER BY
- Limitar resultados com LIMIT
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. Primeiro ordena por categoria (A-Z)
- 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. Seleciona nome e preço de todos os produtos
- 2. Ordena por preço do maior para o menor
- 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