ConceptStep · piattaforma didattica per l'informatica

Ordinare e limitare i risultati

SQL e database · Lezione

SQL · Lezione 3 / 8 · Laboratorio SQLite

Ordinare e limitare i risultati

Ordina i libri per anno e autore, scegli quanti risultati mostrare e scopri perché LIMIT richiede un ordinamento esplicito.

← Torna al percorso SQL

Prima di iniziare

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».

Perché ordinare?

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).

Ordinamento decrescente

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).

Più criteri di ordinamento

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 e OFFSET

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).

WHERE prima di ORDER BY

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).

Laboratorio ed esercizi

0 completati · 8 da fare

Scrivi una query per ogni consegna. Eseguila qui oppure in DB Browser; controlla colonne, righe e condizioni.

Esercizio 1

Mostra titolo e anno di tutti i libri, ordinati dal più vecchio al più recente.

Numero di righe atteso: 8

Esercizio 2

Mostra titolo e anno dei tre libri più recenti.

Numero di righe atteso: 3

Esercizio 3

Mostra titolo e autore, ordinando prima per autore e poi per titolo.

Numero di righe atteso: 8

Esercizio 4

Mostra i libri Fantasy, dal più recente al più vecchio.

Numero di righe atteso: 2

Esercizio 5

Trova il libro pubblicato per primo: mostra titolo e anno.

Numero di righe atteso: 1

Esercizio 6

Ordina i libri per anno crescente, salta i primi due e mostra i tre successivi.

Numero di righe atteso: 3

Esercizio 7

Tra i libri dal 1950 in poi, mostra i due meno recenti.

Numero di righe atteso: 2

Esercizio 8

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.

La tua mappa delle competenze

Cosa devi sapere per Ordinare e limitare i risultati

ConceptStep distingue ciò che è indispensabile da ciò che è consigliato o utile come rinforzo. Solo i prerequisiti obbligatori bloccano l'avanzamento.

Argomento corrente Competenza solida Da ripassare Da rafforzare Da acquisire Supporto opzionale

Relazioni: linea continua = obbligatorio · linea tratteggiata = consigliato · linea puntinata = rinforzo.

PERCORSI GUIDATI

Vuoi scegliere la prossima competenza da sviluppare?