Esercizio 1
Mostra titolo e anno di tutti i libri, ordinati dal più vecchio al più recente.
Numero di righe atteso: 8
SQL e database · Lezione
Ordina i libri per anno e autore, scegli quanti risultati mostrare e scopri perché LIMIT richiede un ordinamento esplicito.
Le lezioni usano biblioteca.db: una tabella libri con otto record. Nel laboratorio a destra puoi provare subito le query e scaricare lo stesso database per continuare con DB Browser for SQLite.
Puoi sperimentare liberamente: se vuoi tornare agli otto libri iniziali, usa il pulsante «Ripristina».
Una query SELECT senza ORDER BY non garantisce l'ordine dei record, anche se nel nostro piccolo database i risultati sembrano sempre uguali. ORDER BY anno ASC ordina i libri dal più vecchio al più recente. ASC (crescente) è facoltativo.
SELECT titolo, anno FROM libri ORDER BY anno ASC;
Risultato atteso: 8 righe; prima Il piccolo principe (1943), ultimo Harry Potter e la pietra filosofale (1997).
DESC (decrescente) inverte l'ordine. Prova a ordinare per anno DESC: otterrai prima i libri più recenti. Non confondere DESC con l'ordinamento alfabetico del titolo.
SELECT titolo, anno FROM libri ORDER BY anno DESC;
Risultato atteso: 8 righe; prima Harry Potter… (1997), ultimo Il piccolo principe (1943).
Puoi indicare più colonne separate da virgole. SQL ordina prima per autore; se due libri hanno lo stesso autore, usa il titolo per decidere quale viene prima. Per esempio, i due libri di George Orwell vengono ordinati tra loro per titolo.
SELECT autore, titolo FROM libri ORDER BY autore ASC, titolo ASC;
Risultato atteso: 8 righe in ordine alfabetico per autore e poi per titolo.
LIMIT 3 mostra soltanto le prime tre righe dell'ordinamento indicato. OFFSET 2 salta le prime due righe e mostra quelle successive. Senza ORDER BY, il significato di «prime tre righe» non è stabile: usa sempre un ordinamento quando scegli un sottoinsieme.
SELECT titolo, anno FROM libri ORDER BY anno DESC LIMIT 3 OFFSET 2;
Risultato atteso: Tre righe: Il Signore degli Anelli (1954), Fahrenheit 451 (1953), Io, Robot (1950).
Scrivi le clausole nell'ordine SELECT … FROM … WHERE … ORDER BY … LIMIT …. Prima filtri i libri, poi ordini quelli rimasti e infine limiti il numero di righe mostrate.
SELECT titolo, anno FROM libri WHERE genere = 'Fantasy' ORDER BY anno DESC LIMIT 1;
Risultato atteso: Un libro: Harry Potter e la pietra filosofale (1997).
Scrivi una query per ogni consegna. Eseguila qui oppure in DB Browser; controlla colonne, righe e condizioni.
Mostra titolo e anno di tutti i libri, ordinati dal più vecchio al più recente.
Numero di righe atteso: 8
Mostra titolo e anno dei tre libri più recenti.
Numero di righe atteso: 3
Mostra titolo e autore, ordinando prima per autore e poi per titolo.
Numero di righe atteso: 8
Mostra i libri Fantasy, dal più recente al più vecchio.
Numero di righe atteso: 2
Trova il libro pubblicato per primo: mostra titolo e anno.
Numero di righe atteso: 1
Ordina i libri per anno crescente, salta i primi due e mostra i tre successivi.
Numero di righe atteso: 3
Tra i libri dal 1950 in poi, mostra i due meno recenti.
Numero di righe atteso: 2
Mostra i cinque libri più recenti; in caso di stesso anno usa il titolo.
Numero di righe atteso: 5
Premi «Controlla esercizio» per verificare il risultato. Se non riesci, usa «Aiutami»: riceverai suggerimenti graduali senza vedere subito la soluzione.
ConceptStep distingue ciò che è indispensabile da ciò che è consigliato o utile come rinforzo. Solo i prerequisiti obbligatori bloccano l'avanzamento.
Relazioni: linea continua = obbligatorio · linea tratteggiata = consigliato · linea puntinata = rinforzo.