MédioFase 6
Exercício Médio — Consultas com WHERE, ORDER BY e LIMIT
A partir da tabela de livros do exercício anterior, escreve seis consultas diferentes.
FerramentasVS CodeTerminalNode.jsbetter-sqlite3
Objetivo: ganhar fluência a combinar SELECT, WHERE, ORDER BY e LIMIT — a base de qualquer ecrã de listagem numa aplicação real.
Passos a realizar
- No mesmo projeto biblioteca, insere pelo menos 8 livros (com anos e estados de "lido" variados), para teres dados suficientes para filtrar.
- Cria consultas.js e escreve, cada uma numa secção separada com um console.log a identificar qual é:
- Todos os livros ainda não lidos.
- Todos os livros publicados depois de um certo ano, à tua escolha.
- Os 3 livros mais recentes (maior ano), ordenados do mais recente para o mais antigo.
- Todos os livros de um autor específico, ordenados alfabeticamente pelo título.
- Para cada consulta, imprime o número de resultados encontrados antes de imprimires os próprios livros.
Fluxo de funcionamento
- 1SELECT * FROM livros
- 2WHERE filtra linhas
- 3ORDER BY define a ordem
- 4LIMIT corta o tamanho
Dicas
- better-sqlite3 usa .all() para consultas que devolvem várias linhas, e .get() quando só esperas uma.
- Testa cada consulta isoladamente antes de a combinares com outras condições — mais fácil de depurar uma peça de cada vez.
Erros comuns
- Esquecer as aspas à volta de valores de texto dentro do WHERE (ex: WHERE autor = Tolkien em vez de WHERE autor = 'Tolkien').
- Confundir ASC com DESC, obtendo a ordem invertida da pretendida.