0Pricing
SQL Academy · Leçon

LIMIT et OFFSET

Récupérez les N premières lignes et paginez les résultats.

LIMIT et OFFSET est une leçon SQL Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Academy comprend 4 leçons au total.

Récupérer seulement quelques lignes

Parfois, vous ne voulez pas obtenir toutes les lignes correspondantes, mais seulement les premières. LIMIT plafonne le nombre de lignes renvoyées par la requête.

Cela renvoie au maximum 5 produits.

SELECT name, price
FROM products
LIMIT 5;

LIMIT sans ORDER BY est aléatoire

LIMIT seul vous renvoie certaines lignes, mais il est impossible de savoir lesquelles. Associez-le toujours à ORDER BY afin que le résultat soit pertinent et reproductible.

-- The 5 newest orders, deterministically
SELECT id, total, created_at
FROM orders
ORDER BY created_at DESC
LIMIT 5;

Ignorer des lignes avec OFFSET

OFFSET indique à la base de données d'ignorer un certain nombre de lignes avant de renvoyer le résultat. Combiné à LIMIT, il constitue la base de la pagination.

Cela ignore les 10 premières lignes et renvoie les 5 suivantes.

SELECT name, price
FROM products
ORDER BY name
LIMIT 5 OFFSET 10;

Construire des pages

Pour une taille de page de 10, les numéros de page correspondent aux décalages suivants :

  • Page 1 : OFFSET 0
  • Page 2 : OFFSET 10
  • Page 3 : OFFSET 20

La formule est OFFSET = (page - 1) * page_size.

-- Page 3 with 10 rows per page
SELECT name, price
FROM products
ORDER BY name
LIMIT 10 OFFSET 20;

Ordre des opérations

La base de données applique les clauses dans cet ordre : filtrer avec WHERE, trier avec ORDER BY, puis réduire avec OFFSET et LIMIT.

Vous parcourez donc toujours le résultat trié et filtré.

SELECT name, price
FROM products
WHERE price > 0
ORDER BY price DESC
LIMIT 10 OFFSET 0;

LIMIT ALL et OFFSET 0

LIMIT ALL signifie « aucune limite » (comme si vous omettiez LIMIT) et OFFSET 0 n'ignore aucune ligne. Ils sont parfois utiles lorsqu'une valeur est construite dynamiquement.

SELECT name
FROM products
ORDER BY name
LIMIT ALL OFFSET 0;

La syntaxe standard de FETCH

PostgreSQL prend également en charge la forme standard SQL : OFFSET n ROWS FETCH NEXT m ROWS ONLY. Elle fait exactement la même chose que LIMIT/OFFSET, mais de manière plus verbeuse.

SELECT name, price
FROM products
ORDER BY name
OFFSET 10 ROWS
FETCH NEXT 5 ROWS ONLY;

Pourquoi les grands OFFSET sont lents

Un grand OFFSET oblige toujours la base de données à parcourir et écarter chaque ligne ignorée. OFFSET 100000 lit 100 000 lignes uniquement pour les jeter, ce qui ralentit l'affichage des pages éloignées.

-- Reads 100000 rows then discards them
SELECT id, name
FROM products
ORDER BY id
LIMIT 10 OFFSET 100000;

Pagination par clé

Une solution plus rapide est la pagination par clé (recherche). Au lieu d'utiliser un décalage, mémorisez la dernière ligne affichée et demandez les lignes qui viennent après.

Cette méthode accède directement à la page suivante à l'aide d'un index, sans ignorer de lignes.

-- Next page after the last seen id (e.g. 5000)
SELECT id, name
FROM products
WHERE id > 5000
ORDER BY id
LIMIT 10;

Pour des pages stables, utilisez un tri stable

Si votre ORDER BY contient des ex æquo, les lignes peuvent changer de position entre deux chargements de page, ce qui peut provoquer des doublons ou des trous. Terminez le tri par une clé unique, comme la clé primaire, afin que la pagination reste cohérente.

SELECT id, name, price
FROM products
ORDER BY price DESC, id
LIMIT 10 OFFSET 20;

Une seule ligne en tête

LIMIT 1 permet de récupérer rapidement une seule ligne, par exemple le produit le plus cher ou la commande la plus récente. Combinez-le avec le bon ORDER BY.

SELECT name, price
FROM products
ORDER BY price DESC
LIMIT 1;

Vérification rapide

Vous affichez 10 lignes par page. Quelle clause renvoie la page 3 ?

Récapitulatif

Vous pouvez maintenant découper vos résultats :

  • LIMIT n plafonne le nombre de lignes
  • OFFSET m ignore des lignes ; OFFSET = (page-1)*size
  • Combinez toujours cette clause avec ORDER BY pour obtenir des pages prévisibles
  • Pour gagner en rapidité, préférez la pagination par clé aux grands décalages

Ensuite, vous utiliserez ces outils pour trouver les enregistrements parmi les N premiers.

SELECT name, price
FROM products
ORDER BY name
LIMIT 10 OFFSET 20;

Questions Fréquemment Posées

La leçon « LIMIT et OFFSET » est-elle gratuite ?

Oui — le texte complet de « LIMIT et OFFSET » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Academy, passe à CoddyKit PRO. Le cours SQL Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « LIMIT et OFFSET » ?

Récupérez les N premières lignes et paginez les résultats. Tu pratiques SQL Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer SQL Academy ?

Aucune expérience préalable n'est requise. SQL Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « LIMIT et OFFSET » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon SQL Academy ?

Oui. Chaque leçon SQL Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Trier avec ORDER BY
  2. Trier selon plusieurs colonnes
  3. LIMIT et OFFSET
  4. Trouver les enregistrements principaux
← Retour à SQL Academy