Skip to content
Bases de Dados e SQLModo de leitura focado
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

  1. No mesmo projeto biblioteca, insere pelo menos 8 livros (com anos e estados de "lido" variados), para teres dados suficientes para filtrar.
  2. 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.
  3. Para cada consulta, imprime o número de resultados encontrados antes de imprimires os próprios livros.

Fluxo de funcionamento

  1. 1SELECT * FROM livros
  2. 2WHERE filtra linhas
  3. 3ORDER BY define a ordem
  4. 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.

As minhas dúvidas

Voltar à vista da fase