Comment limiter le nombre de lignes retournées par une requête ? Si tu veux juste les 5 premiers étudiants, l'employé avec le plus gros salaire ou la liste du top 10 des produits, la commande LIMIT est exactement ce qu'il te faut !
Quand tu bosses avec des bases de données, les résultats de tes requêtes peuvent être énormes. Dans ces cas-là, t'as besoin de limiter la quantité de données retournées, pour :
- Réduire la charge sur le serveur et le réseau.
- Analyser les données plus facilement sans scroller des pages sans fin.
Petite analogie : imagine que tu voulais offrir un verre à une fille dans un bar, mais que t'as accidentellement payé la tournée à tout le monde. C'est impressionnant, mais t'as pas besoin d'autant de filles, non ? Donc on apprend à commander juste ce qu'il faut, et LIMIT va t'aider pour ça.
Syntaxe de base de LIMIT
Voilà à quoi ça ressemble :
SELECT colonne1, colonne2
FROM table
LIMIT nombre_de_lignes;
Exemple 1 : Limiter les enregistrements
Imaginons qu'on a une table students avec 1000 lignes. On veut voir seulement les 3 premiers enregistrements :
SELECT *
FROM students
LIMIT 3;
Résultat :
| id | name | age |
|---|---|---|
| 1 | Otto | 20 |
| 2 | Anna | 22 |
| 3 | Alex | 19 |
C'est simple : au lieu d'une longue liste, on voit juste trois lignes. LIMIT a retourné exactement le nombre de lignes qu'on a demandé.
Utilisations pratiques de LIMIT
Exemple 2 : Top produits
Tu bosses avec une table de produits products et tu veux voir les noms et prix des cinq articles les plus chers. D'abord on trie par prix décroissant, puis on limite le résultat :
SELECT product_name, price
FROM products
ORDER BY price DESC
LIMIT 5;
Résultat :
| product_name | price |
|---|---|
| iPhone 16 Pro Max | 1500 |
| MacBook Pro | 1200 |
| AirPods Pro | 300 |
| iPad Pro | 280 |
| Apple Watch | 250 |
Maintenant tu vois juste le top 5 des produits les plus chers.
Comment LIMIT aide à tester les requêtes
Quand tu développes des requêtes SQL, tu tombes souvent sur des gros volumes de données. LIMIT te permet de vérifier d'abord si ta requête est correcte, en ne ramenant qu'un petit échantillon. Par exemple :
SELECT *
FROM transactions_log
LIMIT 10;
Quand t'es sûr que la logique de ta requête est bonne, tu peux enlever le LIMIT.
Particularités de l'utilisation de LIMIT
1. LIMIT sans ORDER BY
Si tu ne précises pas de tri avec ORDER BY, LIMIT va te renvoyer les données dans un ordre aléatoire — enfin, dans l'ordre où elles sont stockées dans la table. En général c'est pas grave, mais parfois ça peut être imprévisible.
Par exemple :
SELECT name, age
FROM students
LIMIT 3;
Sans ORDER BY, tu ne peux pas savoir à l'avance quelles trois lignes tu vas récupérer.
Pour éviter ça, utilise ORDER BY :
SELECT name, age
FROM students
ORDER BY age DESC
LIMIT 3;
2. Utilisation combinée avec WHERE
On peut combiner WHERE pour filtrer les lignes et LIMIT pour limiter le résultat. C'est super pratique quand t'as trop de données et que tu veux juste les premiers résultats qui matchent.
SELECT *
FROM students
WHERE age > 18
LIMIT 5;
Cette requête va te donner les 5 premiers étudiants de plus de 18 ans.
3. Application pratique : afficher la première page de données
Si tu bosses avec un système d'affichage de données (genre une appli web), LIMIT sert à afficher la première page de résultats.
SELECT *
FROM employees
ORDER BY hire_date
LIMIT 10;
Là tu récupères les 10 premiers employés, triés par date d'embauche.
Exemple avancé : Combiner LIMIT avec des agrégats
Imagine que tu veux afficher les trois catégories de produits les plus populaires :
SELECT category, COUNT(*) AS total_products
FROM products
GROUP BY category
ORDER BY total_products DESC
LIMIT 3;
Cette requête groupe d'abord les produits par catégorie, trie par quantité, puis ne garde que trois lignes.
Comment fonctionne exactement l'opérateur GROUP BY et la fonction COUNT() ? Tu verras ça dans les prochaines leçons.
Erreurs classiques avec LIMIT
Quand tu utilises LIMIT, tu peux tomber sur quelques pièges :
"Ordre des lignes aléatoire" : si t'oublies ORDER BY, les données peuvent arriver dans un ordre chelou. Mets toujours un tri si c'est important.
"Données importantes coupées" : par exemple, si deux enregistrements ont la même valeur dans la colonne de tri, LIMIT peut te donner un résultat incomplet. Ajoute des critères de tri supplémentaires pour éviter ça.
SELECT *
FROM students
ORDER BY age DESC, name ASC
LIMIT 5;
"Mauvaise combinaison avec WHERE" : parfois, les conditions de filtrage réduisent tellement le résultat que LIMIT ne sert plus à rien. Par exemple, si WHERE ne retourne que 2 lignes et que LIMIT est à 10, tu n'auras quand même que 2 lignes.
"Dépendance à la base de données" : certaines SGBD ont une autre syntaxe pour limiter les lignes (genre TOP dans SQL Server). PostgreSQL utilise bien LIMIT.
Pourquoi LIMIT est utile dans la vraie vie ?
Interfaces avec plein d'enregistrements : imagine un site e-commerce où tu parcours les produits page par page. La première page peut n'afficher que 10 lignes, et c'est LIMIT qui rend ça possible.
Rapports : souvent, tu veux juste le haut du panier (genre top 5 des employés, meilleurs vendeurs, étudiants avec les meilleures notes).
Test et optimisation des requêtes : au lieu de bosser sur des millions de lignes, tu peux tester vite fait ta requête sur un petit échantillon.
GO TO FULL VERSION