Accéder au contenu principal

Comment utiliser au mieux la clause LIMIT de SQL

Apprenez à utiliser la clause LIMIT de SQL pour filtrer les données. Maîtriser l'utilisation de la clause LIMIT dans les bases de données PostgreSQL et MySQL.
Actualisé 16 janv. 2025  · 8 min de lecture

La clause SQL LIMIT contrôle le nombre d'enregistrements renvoyés dans une requête. Comme son nom l'indique, la clause LIMIT restreint les lignes affichées après le filtrage des données. Cette clause est importante lorsque vous traitez de grands ensembles de données, mais que vous ne souhaitez récupérer que des parties spécifiques des données.

Si vous êtes un praticien de données en herbe, je vous recommande vivement de suivre les cours Introduction à SQL et Fondamentaux SQL de DataCamp pour acquérir des compétences pertinentes en SQL pour l'analyse de données.

La réponse courte : Qu'est-ce que la clause LIMIT de SQL ?

La clause SQL LIMIT est une clause utile qui spécifie le nombre d'enregistrements qu'une requête doit renvoyer après avoir filtré les données. Cette technique permet de ne renvoyer qu'un sous-ensemble de données pour affichage ou analyse. C'est pourquoi la clause LIMIT est importante pour diviser les données volumineuses en morceaux plus petits dans la pagination des données. Il est également utilisé pour optimiser les performances afin d'éviter les requêtes volumineuses qui pourraient ralentir les performances de la base de données.

L'exemple ci-dessous montre l'utilisation de base de la clause LIMIT pour n'afficher que les 10 premiers enregistrements du tableau employees.

-- Select all columns from the employees table
-- and limit the number of returned rows to 10.
SELECT * 
FROM employees
LIMIT 10;

Syntaxe de la clause LIMIT de SQL

La clause SQL LIMIT est incluse dans l'instruction SELECT pour contrôler le nombre d'enregistrements renvoyés par une requête. La clause LIMIT est ajoutée à la fin de la déclaration pour filtrer les enregistrements comme spécifié. Vous pouvez également consulter l'aide-mémoire SQL Basics de DataCamp pour en savoir plus sur LIMIT et d'autres clauses SQL courantes.

-- Select columns column1, column2, ... from the table table_name
SELECT column1, column2, ...
FROM table_name
-- Limit the number of rows returned to number_of_rows
LIMIT number_of_rows;

Voici la clause LIMIT dans un exemple pratique. La requête n'affichera que 10 enregistrements du tableau employees à partir des colonnes first_name, last_name et department.

-- Select first_name, last_name, and department from the employees table
SELECT first_name, last_name, department
FROM employees
-- Limit the number of rows returned to 10
LIMIT 10;

Parfois, vous pouvez utiliser la clause facultative OFFSET pour sauter un nombre spécifique de lignes avant d'afficher les lignes voulues. La syntaxe de OFFSET est présentée ci-dessous.

-- Select column_names from the table table_name
SELECT column_names
FROM table_name
-- Arrange the results in ascending order based on column_name
ORDER BY column_name
-- Limit the number of rows returned to number_of_rows, starting from offset_value
LIMIT number_of_rows OFFSET offset_value;

Dans la requête SQL ci-dessus, number_of_rows indique le nombre de lignes à renvoyer, tandis que offset_value indique le nombre de lignes que la requête doit sauter avant de les renvoyer. 

L'exemple ci-dessous montre comment utiliser les clauses SQL OFFSET et LIMIT pour contrôler le nombre de lignes à renvoyer. Alors que la clause LIMIT spécifie le renvoi de 10 enregistrements, la clause OFFSET de la requête ignore les 5 premiers enregistrements. Par conséquent, les résultats afficheront les enregistrements de la 6e ligne des données à la 15e ligne (10 lignes).

-- Select first_name, last_name, and department from the employees table
SELECT first_name, last_name, department
FROM employees
-- Limit the number of rows returned to 10, starting from the 6th row (offset of 5)
LIMIT 10 OFFSET 5;

Points importants à retenir concernant la clause LIMIT de SQL

Il est essentiel de comprendre comment mettre en œuvre correctement la clause LIMIT et ses variantes dans les différentes bases de données SQL pour optimiser les performances des requêtes et garantir la précision de la récupération des données. Examinons quelques points importants. 

Le placement de la clause LIMIT dans l'instruction SELECT

La clause LIMIT est généralement placée à la fin de la déclaration SELECT, après la clause FROM. Si vous utilisez d'autres clauses d'agrégation facultatives, telles que les clauses WHERE, GROUP BY et ORDER BY, assurez-vous que la clause LIMIT se trouve à la fin de la requête.

-- Select all columns from the employees table
SELECT *
FROM employees
-- Limit the number of rows returned to 5, starting from the 21st row (offset of 20)
LIMIT 10 OFFSET 20;

Combinaison de la clause LIMIT avec la clause ORDER BY

La clause LIMIT peut être combinée avec l'agrégat ORDER BY pour obtenir des résultats cohérents et prévisibles. Cette technique garantit que les données sont stockées dans un ordre particulier avant d'être récupérées. Dans l'exemple ci-dessous, nous classons les données par hire_date dans l'ordre décroissant avant d'afficher les lignes filtrées.

-- Select all columns from the employees table
SELECT *
FROM employees
-- Arrange the results in descending order based on hire_date
ORDER BY hire_date DESC
-- Limit the number of rows returned to 10
LIMIT 10;

Je vous recommande de suivre le parcours Associate Data Analyst in SQL et le cursus Reporting in SQL de DataCamp pour en savoir plus sur les fonctions d'agrégation et leurs applications dans l'analyse des données.

Variations et syntaxe de SQL LIMIT dans les bases de données

Les exemples ci-dessus montrent l'utilisation des clauses SQL LIMIT dans les bases de données PostgreSQL, SQLite et MySQL prises en charge.

Pour obtenir des résultats similaires dans SQL Server, envisagez d'utiliser la fonction TOP pour contrôler le nombre d'enregistrements à renvoyer à partir de données données.

-- Select the top 10 records of first_name, last_name from the employees table
SELECT TOP 10 first_name, last_name
FROM employees
-- Arrange the results in descending order based on hire_date
ORDER BY hire_date DESC;

De même, la base de données Oracle permet d'utiliser FETCH FIRST n ROWS ONLY pour contrôler le nombre d'enregistrements à renvoyer dans une requête.

-- Select the first_name and last_name columns from the employees table
SELECT first_name, last_name
FROM employees
-- Order the results in descending order based on hire_date
ORDER BY hire_date DESC
-- Limit the number of rows returned to the first 10 rows
FETCH FIRST 10 ROWS ONLY;

LIMIT et OFFSET dans la pagination

SQL LIMIT et OFFSET sont généralement combinés pour obtenir une pagination efficace des données. Cette technique garantit que les grands ensembles de données sont divisés en morceaux plus petits et plus faciles à gérer pour un affichage approprié.

Dans l'exemple ci-dessous, la clause LIMIT et OFFSET limite les lignes affichées à 10 mais commence à la 21e ligne.

-- Select all columns from the employees table
SELECT *
-- Arrange the results in descending order based on hire_date
FROM employees
ORDER BY hire_date DESC
-- Limit the number of rows returned to 10, starting from the 21st row (offset of 20)
LIMIT 10 OFFSET 20;

Cas d'utilisation courants de la clause LIMIT de SQL

  • Pagination : Combinée à la clause OFFSET, la clause LIMIT est utilisée dans les applications web pour la pagination des données. Cette technique permet d'afficher les données en plus petits morceaux/sous-ensembles, par exemple sur différentes pages web.
  • Optimiser les performances : La clause LIMIT peut améliorer les performances des requêtes en réduisant la charge des serveurs de la base de données. Cette technique permet de récupérer et de renvoyer simultanément des sous-ensembles de données plus petits.
  • Échantillonnage des données : La clause LIMIT est utile pour l'analyse des données en récupérant des sous-ensembles de données plus petits. Cette méthode permet aux analystes de données d'améliorer les performances lors de l'analyse.

Limites de la commande SQL Limit

Les limitations de la clause SQL LIMIT sont les suivantes :

  • Manque de soutien de la part de toutes les bases de données : La clause LIMIT n'est pas prise en charge dans toutes les bases de données. Par exemple, la clause LIMIT n'est pas disponible dans les bases de données SQL Server et Oracle. 
  • Problèmes de performance avec de grandes valeurs d'OFFSET : L'utilisation de grandes valeurs sur OFFSET peut ralentir les serveurs de base de données, ce qui ralentit l'exécution des requêtes.

Pour éviter les limitations des différentes bases de données, envisagez d'utiliser les alternatives suivantes.x

La clause TOP dans le serveur SQL

La clause TOP donne les mêmes résultats que la clause LIMIT pour la base de données SQL Server.

-- Select the top 10 rows from the employees table ordered by hire_date
SELECT TOP 10 first_name, last_name
FROM employees
ORDER BY hire_date DESC;

FETCH FIRST n ROWS ONLY dans SQL Server et DB2

La clause FETCH FIRST n ROWS ONLY renvoie également des résultats similaires à ceux de la clause LIMIT pour les bases de données SQL Server et DB2.

-- Select the first 10 rows from the employees table ordered by hire_date
SELECT first_name, last_name
FROM employees
ORDER BY hire_date DESC
FETCH FIRST 10 ROWS ONLY;

ROWNUM dans Oracle

Dans la base de données Oracle, la fonction ROWNUM contrôle le nombre d'enregistrements renvoyés à partir des données. La fonction est combinée à une sous-requête pour filtrer les données selon les besoins.

-- Select the top 10 rows from the employees table ordered by hire_date
SELECT * FROM (
    SELECT first_name, last_name
    FROM employees
    ORDER BY hire_date DESC
) WHERE ROWNUM <= 10;

Conclusion

La clause SQL LIMIT est importante pour limiter le nombre de lignes affichées après avoir extrait des données d'une base de données. En tant que praticien des données, il est important de comprendre les différents cas d'utilisation de la clause LIMIT pour l'analyse et la manipulation des données. De même, vous devez tenir compte de la prise en charge de la clause LIMIT par la base de données et utiliser d'autres fonctions alternatives lorsque vous utilisez des bases de données incompatibles telles que SQL Server et Oracle.

Pour comprendre les différentes applications de la clause SQL LIMIT, vous devez continuer à vous entraîner avec différents ensembles de données. Les cours Learn SQL et Intermediate SQL de DataCamp sont appropriés pour acquérir des compétences avancées en SQL. Je vous recommande également de passer la certification SQL Associate de DataCamp pour démontrer votre connaissance de l'utilisation de SQL et vous démarquer parmi d'autres praticiens des données.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Je crée des articles qui simplifient la science des données et l'analyse, en les rendant faciles à comprendre et accessibles.

Questions fréquemment posées

Quelle est l'utilité de la fonction SQL LIMIT ?

La fonction SQL LIMIT contrôle le nombre de lignes renvoyées à partir des données filtrées.

Quelle est l'utilisation principale du LIMIT SQL ?

SQL LIMIT est principalement utilisé pour la pagination des données sur les pages web afin de limiter le nombre de lignes affichées.

La clause SQL LIMIT est-elle supportée par toutes les bases de données ?

La fonction SQL LIMIT n'est prise en charge que par les bases de données PostgreSQL, MySQL et SQLite. La clause n'est pas prise en charge dans les bases de données SQL Server et Oracle.

Quelle est l'alternative à la clause LIMIT dans les bases de données non prises en charge ?

L'alternative à la fonction SQL LIMIT dans SQL Server est la clauseTOP et FETCH FIRST n ROWS ONLY. La base de données Oracle utilise la fonction ROWNUM comme alternative à LIMIT.

Quelle est l'utilisation de OFFSET dans la clause LIMIT de SQL ?

Nous pouvons utiliser OFFSET pour spécifier le nombre de lignes à ignorer avant de renvoyer le nombre particulier de lignes de la clause LIMIT .

Sujets

Apprenez SQL avec DataCamp

Certification disponible

cours

Introduction à SQL

2 hr
741.3K
Apprenez à créer et à interroger des bases de données relationnelles à l'aide de SQL en seulement deux heures.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow
Apparenté

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

See MoreSee More