Lorsque vous travaillez avec de grandes tables, vous ne voulez souvent pas récupérer toutes les lignes. Parfois, vous n'avez besoin que des premiers enregistrements, ou vous voulez implémenter une pagination (afficher la Page 1, la Page 2, etc.). Pour ces besoins, on utilise les clauses LIMIT et OFFSET.
La clause LIMIT permet de spécifier le nombre maximal de lignes que la requête doit retourner.
SELECT column1, column2, ...
FROM table_name
ORDER BY column_name
LIMIT count;
count : le nombre maximal de lignes à renvoyer.Remarque : Il est fortement recommandé d'utiliser
LIMITavecORDER BY. Sans tri, les "X premières lignes" peuvent être n'importe quelles lignes, selon l'optimisation du moteur de base de données.
La clause OFFSET indique à la base de données d'ignorer un certain nombre de lignes avant de commencer à retourner les résultats.
SELECT column1, column2, ...
FROM table_name
ORDER BY column_name
LIMIT count OFFSET skip;
skip : le nombre de lignes à ignorer avant de commencer à retourner des lignes.La pagination consiste à diviser un grand jeu de résultats en pages. C'est l'usage le plus courant de LIMIT et OFFSET.
LIMIT 10 OFFSET 0 (Lignes 1-10)LIMIT 10 OFFSET 10 (Lignes 11-20)LIMIT 10 OFFSET 20 (Lignes 21-30)Cette requête trouve les 5 films les plus longs dans la table film.
SELECT title, length
FROM film
ORDER BY length DESC
LIMIT 5;
Cette requête ignore les 10 premiers acteurs (triés par ID) et retourne les 5 suivants.
SELECT actor_id, first_name, last_name
FROM actor
ORDER BY actor_id
LIMIT 5 OFFSET 10;
Points clés de cette leçon :
LIMIT restreint le nombre de lignes du jeu de résultats.OFFSET permet d'ignorer un nombre donné de lignes avant de commencer le retour.LIMIT et OFFSET est la méthode standard pour implémenter la pagination.ORDER BY avec ces clauses pour garantir des résultats prédictibles.Dans la prochaine leçon, nous verrons comment combiner WHERE, ORDER BY et LIMIT pour construire des requêtes puissantes et précises.