SQL, ou langage de requête structuré, nous permet de collecter des données à partir d'une base de données via des requêtes. Cela nous permet également d'insérer, de mettre à jour et de supprimer ces données.
Dans cet article de blog, nous nous concentrerons sur la façon de récupérer des données et de limiter les résultats à l'aide de SQL.
Pourquoi devriez-vous limiter les résultats des requêtes SQL ?
Une base de données est généralement une énorme collection de données. Parfois, nous n'avons pas besoin de récupérer tous les résultats. Pour limiter les résultats, nous pouvons optimiser la requête.
La limitation des résultats de requête est importante pour les performances de la base de données. La récupération d'un résultat volumineux alors qu'il n'est pas nécessaire entraîne une charge supplémentaire sur la base de données et a un impact sur l'expérience utilisateur.
Comment limiter les résultats des requêtes en SQL
La syntaxe est différente pour SQL Server, Oracle et MySQL pour limiter les données.
- MySQL utilise
LIMIT
. - ORACLE utilise
FETCH FIRST
. - MS Access et SQL Server utilisent
TOP
.
Nous verrons des exemples de la façon dont chacun fonctionne en détail ci-dessous.
Base de données de démonstration
Nous avons le tableau suivant nommé students
avec leurs détails comme vous pouvez le voir ci-dessous :
identifiant | Nom | Sexe |
---|---|---|
1 | Ryan | M |
2 | Joanna | F |
3 | Miranda Andersen | F |
4 | Dalia Mata | F |
5 | Lilianna Boyd | F |
6 | Lexie Sharp | M |
7 | Jazlene Cordoue | F |
8 | Brycen Werner | M |
9 | Karissa Turner | F |
10 | Aisha Dodson | F |
11 | Aydin Reeves | M |
Comment limiter une requête dans MySQL
Vous trouverez ci-dessous la syntaxe de MySQL.
SELECT (expression)
FROM
table_name
LIMIT 5;
Par exemple, nous sélectionnerons les 5 premiers enregistrements de la table.
Utilisons notre table students
pour cette démonstration.
-- fetch top 5 values from table
SELECT * FROM students
LIMIT 5;
Sortie :
Comment combiner LIMIT avec ORDER BY
Lorsque vous combinez LIMIT avec ORDER BY, vous pouvez obtenir des résultats plus significatifs. Par exemple, nous pouvons l'utiliser pour trouver les 5 meilleurs étudiants qui ont obtenu une note supérieure à 70 % à leur examen.
Commandons notre table students
avec la colonne name
et choisissez le top 5 du résultat. Vous pouvez le faire comme ceci :
SELECT * FROM students
order by name
LIMIT 5;
Sortie :
Comment limiter les résultats – syntaxe Oracle
Vous trouverez ci-dessous la syntaxe équivalente pour notre premier exemple dans Oracle.
SELECT * FROM students
FETCH FIRST 5 ROWS ONLY;
Dans les anciennes versions d'Oracle, vous pouvez utiliser ROWNUM pour limiter le nombre de lignes renvoyées par une requête.
Exemple :
SELECT * FROM
students
WHERE ROWNUM < 5;
Comment limiter les résultats en SQL – syntaxe MS Access
Vous trouverez ci-dessous la syntaxe équivalente pour notre premier exemple dans MS Access.
SELECT TOP 5 * FROM students;
Conclusion
La fonctionnalité LIMIT peut être très puissante pour l'optimisation des requêtes lorsqu'elle est combinée avec le tri. Les requêtes efficaces sont plus légères pour le système et rapides pour l'utilisateur. Il est toujours recommandé de LIMITER les résultats le cas échéant.