Lorsque vous travaillez avec de grandes tables, vous ne souhaitez souvent pas récupérer chaque ligne. Parfois, vous n'avez besoin que des premiers enregistrements, ou vous voulez implémenter une "pagination" (afficher les résultats sur la page 1, la page 2, etc.). Pour ces tâches, nous utilisons les clauses LIMIT et OFFSET.
La clause LIMIT est utilisée pour spécifier le nombre maximum de lignes que la requête doit renvoyer.
SELECT colonne1, colonne2, ...
FROM nom_table
ORDER BY nom_colonne
LIMIT nombre;
nombre : Le nombre maximum de lignes à renvoyer.Note : Il est fortement recommandé d'utiliser
LIMITconjointement avecORDER BY. Sans tri, les "X premières lignes" pourraient être n'importe quelles lignes, selon la manière dont le moteur de base de données optimise la requête.
La clause OFFSET indique à la base de données de sauter un nombre spécifique de lignes avant de commencer à renvoyer les résultats.
SELECT colonne1, colonne2, ...
FROM nom_table
ORDER BY nom_colonne
LIMIT nombre OFFSET saut;
saut : Le nombre de lignes à sauter avant de commencer à renvoyer des lignes.La pagination est le processus consistant à diviser un grand ensemble de résultats en pages distinctes. C'est le cas d'utilisation le plus courant de la combinaison 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 saute les 10 premiers acteurs (triés par ID) et renvoie 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 dans l'ensemble de résultats.OFFSET saute un nombre spécifié de lignes avant de renvoyer les données.LIMIT et OFFSET est la méthode standard pour implémenter la pagination.ORDER BY avec ces clauses pour garantir des résultats prévisibles. Des résultats réellement prévisibles ne sont garantis que si le tri repose sur des valeurs uniques (ou sur une combinaison de colonnes définissant un ordre unique).Dans la leçon suivante, nous verrons comment combiner WHERE, ORDER BY et LIMIT pour construire des requêtes puissantes et précises.