CodeGym /Corsi /SQL SELF /Limitare il numero di righe (LIMIT) e gestire il risultat...

Limitare il numero di righe (LIMIT) e gestire il risultato

SQL SELF
Livello 3, Lezione 0
Disponibile

Come si limita il numero di righe restituite da una query? Se ti servono solo i primi 5 studenti, il dipendente con lo stipendio più alto o la lista dei top-10 prodotti, il comando LIMIT è proprio quello che fa per te!

Quando lavori con i database, i risultati delle query possono essere enormi. In queste situazioni, è necessario limitare la quantità di dati restituiti per:

  1. Ridurre il carico su server e rete.
  2. Analizzare i dati più facilmente senza scorrere pagine infinite.

Ecco una semplice analogia: immagina di voler offrire da bere a una ragazza al bar, ma per sbaglio paghi da bere a tutti i presenti. Sicuramente fa scena, ma ti servivano davvero tutte quelle ragazze? Quindi impariamo a ordinare solo quello che ci serve, e LIMIT ci aiuta proprio in questo.

Sintassi base di LIMIT

Ecco come funziona:

SELECT colonna1, colonna2
FROM tabella
LIMIT numero_righe;

Esempio 1: Limitare i record

Supponiamo di avere una tabella students con 1000 righe. Vogliamo vedere solo i primi 3 record:

SELECT *
FROM students 
LIMIT 3;

Risultato:

id name age
1 Otto 20
2 Anna 22
3 Alex 19

Semplice: invece di una lista lunghissima, vediamo solo tre righe. LIMIT ha restituito il numero di righe che abbiamo chiesto.

Applicazioni pratiche di LIMIT

Esempio 2: Top prodotti

Lavori con una tabella di prodotti products e vuoi sapere nomi e prezzi dei cinque articoli più costosi. Prima ordiniamo i record in ordine decrescente di prezzo, poi limitiamo il risultato:

SELECT product_name, price
FROM products 
ORDER BY price DESC 
LIMIT 5;

Risultato:

product_name price
iPhone 16 Pro Max 1500
MacBook Pro 1200
AirPods Pro 300
iPad Pro 280
Apple Watch 250

Ora vedi solo i top-5 prodotti col prezzo più alto.

Come LIMIT aiuta a testare le query

Quando sviluppi query SQL, sicuramente ti capita di lavorare con grandi quantità di dati. LIMIT ti permette di controllare prima la correttezza della query, restituendo solo pochi dati. Ad esempio:

SELECT *
FROM transactions_log
LIMIT 10;

Quando sei sicuro che la logica della query è giusta, puoi togliere LIMIT.

Particolarità nell'uso di LIMIT

1. LIMIT senza ORDER BY

Se non specifichi l'ordinamento con ORDER BY, LIMIT restituisce i dati in ordine casuale — o meglio, nell'ordine in cui sono salvati nella tabella. Di solito non è un problema, ma a volte può essere imprevedibile.

Per esempio:

SELECT name, age
FROM students 
LIMIT 3;

Senza ORDER BY non puoi essere sicuro di quali tre record finiranno nel risultato.

Per evitarlo, usa ORDER BY:

SELECT name, age
FROM students 
ORDER BY age DESC 
LIMIT 3;

2. Uso combinato con WHERE

Possiamo combinare WHERE per filtrare le righe e LIMIT per limitare il risultato. È comodo quando ci sono troppi dati e ti interessano solo le prime corrispondenze.

SELECT *
FROM students 
WHERE age > 18 
LIMIT 5;

Questa query restituisce i primi 5 studenti con più di 18 anni.

3. Applicazione pratica: visualizzare la prima pagina di dati

Se lavori con un sistema di visualizzazione dati (tipo una web app), LIMIT si usa per mostrare la prima pagina di dati.

SELECT *
FROM employees 
ORDER BY hire_date 
LIMIT 10;

Qui ottieni i primi 10 dipendenti ordinati per data di assunzione.

Esempio avanzato: combinare LIMIT con aggregati

Immagina di voler mostrare le tre categorie di prodotti più popolari:

SELECT category, COUNT(*) AS total_products
FROM products 
GROUP BY category 
ORDER BY total_products DESC 
LIMIT 3;

Questa query prima raggruppa i prodotti per categoria, li ordina per quantità e poi lascia solo tre righe.

Come funziona esattamente l'operatore GROUP BY e la funzione COUNT() lo vedrai nelle prossime lezioni.

Errori tipici nell'uso di LIMIT

Lavorando con LIMIT, puoi incontrare alcuni problemi:

"Ordine casuale delle righe": se ti dimentichi ORDER BY, i dati possono arrivare in un ordine inaspettato. Specifica sempre l'ordinamento se è importante.

"Taglio di dati importanti": ad esempio, se due record hanno lo stesso valore nella colonna di ordinamento, LIMIT può restituire un risultato incompleto. Aggiungi criteri di ordinamento extra per evitare queste situazioni.

SELECT *
FROM students 
ORDER BY age DESC, name ASC 
LIMIT 5;

"Combinazione sbagliata con WHERE". A volte le condizioni di filtro restringono così tanto il risultato che LIMIT diventa inutile. Per esempio, se WHERE restituisce solo 2 record e LIMIT è 10, avrai comunque solo 2 righe.

"Dipendenza dal database". Alcuni DBMS hanno una sintassi alternativa per limitare le righe (tipo TOP in SQL Server). PostgreSQL usa proprio LIMIT.

Perché LIMIT serve nella vita reale?

Interfacce con tanti record: pensa a un e-commerce dove sfogli i prodotti a pagine. La prima pagina può avere solo 10 record, e LIMIT lo rende possibile.

Report: spesso ti interessa solo la parte alta dei dati (tipo i top-5 dipendenti, leader di vendita, studenti con i voti più alti).

Testing e ottimizzazione delle query: invece di lavorare con milioni di righe, puoi testare velocemente la query su un piccolo campione.

2
Compito
SQL SELF, livello 3, lezione 0
Bloccato
Limitare il numero di record nella tabella
Limitare il numero di record nella tabella
2
Compito
SQL SELF, livello 3, lezione 0
Bloccato
Visualizzare i top 5 dipendenti per stipendio
Visualizzare i top 5 dipendenti per stipendio
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION