Code SQL copié dans le presse-papiers
Cette leçon présente les clauses `LIMIT` et `OFFSET` en SQL, essentielles pour contrôler le nombre de lignes retournées et implémenter la pagination. Vous apprendrez à récupérer un sous-ensemble précis de données (par ex. les "5 premiers"), et à sauter un certain nombre de lignes pour naviguer dans de grands jeux de résultats. Maîtriser ces clauses est crucial pour construire des applications efficaces et une interface utilisateur paginée.
RU EN PT

Leçon 2.6 : Limiter les résultats avec LIMIT et OFFSET

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

La clause LIMIT permet de spécifier le nombre maximal de lignes que la requête doit retourner.

Syntaxe

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 LIMIT avec ORDER 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

La clause OFFSET indique à la base de données d'ignorer un certain nombre de lignes avant de commencer à retourner les résultats.

Syntaxe

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.

Pagination : combiner LIMIT et OFFSET

La pagination consiste à diviser un grand jeu de résultats en pages. C'est l'usage le plus courant de LIMIT et OFFSET.

  • Page 1 : LIMIT 10 OFFSET 0 (Lignes 1-10)
  • Page 2 : LIMIT 10 OFFSET 10 (Lignes 11-20)
  • Page 3 : LIMIT 10 OFFSET 20 (Lignes 21-30)

Exemples

Exemple 1 : Les 5 films les plus longs

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;

Exemple 2 : Ignorer des enregistrements

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.
  • Combiner LIMIT et OFFSET est la méthode standard pour implémenter la pagination.
  • Utilisez toujours 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.