Banco de Dados I — 2026.2

Aula 9
SELECT: WHERE, ORDER BY & LIMIT

👨‍🏫 Prof. Gustavo Pinto 🏛️ UFPA 📅 19 de maio de 2026 🕣 7h30 – 9h10

Agenda de hoje

SELECT Básico

-- Todas as colunas
SELECT * FROM livro;

-- Colunas específicas
SELECT titulo, ano FROM livro;

-- Alias (apelido)
SELECT titulo AS "Título do Livro", ano AS "Ano de Publicação"
FROM livro;

-- Valores únicos
SELECT DISTINCT editora_id FROM livro;

WHERE — Filtrando Linhas

-- Comparação
SELECT * FROM livro WHERE ano >= 2015;

-- BETWEEN (intervalo inclusivo)
SELECT * FROM livro WHERE ano BETWEEN 2010 AND 2020;

-- IN (lista de valores)
SELECT * FROM livro WHERE editora_id IN (1, 3);

-- LIKE (padrão de texto)
SELECT * FROM livro WHERE titulo LIKE '%Banco%';
-- % = qualquer sequência  |  _ = um caractere

-- IS NULL / IS NOT NULL
SELECT * FROM emprestimo WHERE dt_devolucao IS NULL;

Operadores Lógicos

-- AND: ambas condições verdadeiras
SELECT * FROM livro
WHERE ano >= 2015 AND editora_id = 3;

-- OR: pelo menos uma verdadeira
SELECT * FROM membro
WHERE nome = 'Ana' OR nome = 'Bia';

-- NOT: negação
SELECT * FROM livro
WHERE NOT editora_id = 1;

-- Combinando (use parênteses!)
SELECT * FROM livro
WHERE (ano > 2010 OR editora_id = 1)
  AND titulo LIKE '%Data%';

ORDER BY & LIMIT

-- Ordenar por ano (crescente é o padrão)
SELECT titulo, ano FROM livro ORDER BY ano;

-- Decrescente
SELECT titulo, ano FROM livro ORDER BY ano DESC;

-- Múltiplas colunas
SELECT * FROM livro ORDER BY editora_id, ano DESC;

-- LIMIT: primeiros N resultados
SELECT * FROM livro ORDER BY ano DESC LIMIT 5;

-- OFFSET: pular N resultados (paginação)
SELECT * FROM livro ORDER BY titulo LIMIT 5 OFFSET 10;

Funções Escalares Úteis

Texto

SELECT UPPER(nome) FROM membro;
SELECT LOWER(titulo) FROM livro;
SELECT LENGTH(titulo) FROM livro;
SELECT TRIM(nome) FROM autor;

Conversão e nulos

-- COALESCE: primeiro valor não-nulo
SELECT COALESCE(dt_devolucao, 'pendente')
FROM emprestimo;

-- CAST: conversão de tipo
SELECT CAST(ano AS VARCHAR)
FROM livro;
Exercício

Consultas no banco da Biblioteca

Usando o banco criado na Aula 8, escreva as consultas abaixo no DB Fiddle.

Consultas

1. Livros publicados após 2015, ordenados por ano DESC
2. Membros cujo nome começa com 'A'
3. Empréstimos ainda não devolvidos (dt_devolucao IS NULL)
4. Os 3 livros mais recentes
5. Livros da editora 'O Reilly' OU publicados antes de 2010

Desafio

Combine WHERE + ORDER BY + LIMIT para responder: "Qual o livro mais antigo da editora 3?"

Próxima Aula — 21/05 (Qui)

SELECT — Agregação
COUNT, SUM, AVG, GROUP BY & HAVING