SQL, o linguaggio di query strutturato, ci consente di raccogliere dati da un database tramite query. Ci consente inoltre di inserire, aggiornare ed eliminare tali dati.
In questo post del blog, ci concentreremo su come recuperare i dati e limitare i risultati utilizzando SQL.
Perché dovresti limitare i risultati delle query SQL?
Un database è solitamente un'enorme raccolta di dati. A volte non è necessario recuperare tutti i risultati. Per limitare i risultati, possiamo ottimizzare la query.
La limitazione dei risultati delle query è importante per le prestazioni del database. Il recupero di un risultato di grandi dimensioni quando non è necessario comporta un carico aggiuntivo sul database e influisce sull'esperienza dell'utente.
Come limitare i risultati delle query in SQL
La sintassi è diversa per SQL Server, Oracle e MySQL per la limitazione dei dati.
- MySQL usa
LIMIT
. - ORACLE utilizza
FETCH FIRST
. - MS Access e SQL Server utilizzano
TOP
.
Vedremo esempi di come ognuno funziona in dettaglio di seguito.
Database demo
Abbiamo la seguente tabella denominata students
con i loro dettagli come puoi vedere di seguito:
ID | Nome | Sesso |
---|---|---|
1 | Ryan | M |
2 | Giovanna | F |
3 | Miranda Andersen | F |
4 | Dalia Mata | F |
5 | Lilianna Boyd | F |
6 | Lexie Sharp | M |
7 | Jazlene Cordova | F |
8 | Brycen Werner | M |
9 | Karissa Turner | F |
10 | Aisha Dodson | F |
11 | Aydin Reeves | M |
Come limitare una query in MySQL
Di seguito è riportata la sintassi per MySQL.
SELECT (expression)
FROM
table_name
LIMIT 5;
Ad esempio, selezioneremo i primi 5 record dalla tabella.
Usiamo la nostra tabella students
per questa dimostrazione.
-- fetch top 5 values from table
SELECT * FROM students
LIMIT 5;
Uscita:
Come combinare LIMIT con ORDER BY
Quando combini LIMIT con ORDER BY, puoi ottenere risultati più significativi. Ad esempio, possiamo usarlo per trovare i primi 5 studenti che hanno ottenuto un punteggio superiore al 70% all'esame.
Ordiniamo il nostro tavolo students
con la colonna name
e scegli i primi 5 dal risultato. Puoi farlo in questo modo:
SELECT * FROM students
order by name
LIMIT 5;
Uscita:
Come limitare i risultati – sintassi Oracle
Di seguito è riportata la sintassi equivalente per il nostro primo esempio in Oracle.
SELECT * FROM students
FETCH FIRST 5 ROWS ONLY;
Nelle versioni precedenti di Oracle, puoi utilizzare ROWNUM per limitare il numero di righe restituite da una query.
Esempio:
SELECT * FROM
students
WHERE ROWNUM < 5;
Come limitare i risultati in SQL - sintassi MS Access
Di seguito è riportata la sintassi equivalente per il nostro primo esempio in MS Access.
SELECT TOP 5 * FROM students;
Conclusione
La funzionalità LIMIT può essere molto potente per l'ottimizzazione delle query se combinata con l'ordinamento. Le query efficienti sono più leggere per il sistema e rapide per l'utente. Si consiglia sempre di LIMITARE i risultati ove applicabile.