Ga naar hoofdinhoud

De SQL LIMIT-clausule optimaal gebruiken

Leer hoe je de SQL LIMIT-clausule toepast om data te filteren. Beheers het gebruik van de LIMIT-clausule in PostgreSQL- en MySQL-databases.
· 8 min lezen

Verken met AI

De SQL-LIMIT-clausule bepaalt het aantal records dat door een query wordt teruggegeven. Zoals de naam aangeeft, beperkt de LIMIT-clausule de rijen die worden getoond na het filteren van data. Deze clausule is belangrijk bij het werken met grote datasets, terwijl je slechts specifieke datadelen wilt ophalen.

Als je een aankomend dataprofessional bent, raad ik je sterk aan om DataCamp’s cursussen Introduction to SQL en SQL Fundamentals te volgen om relevante SQL-vaardigheden voor data-analyse op te doen.

Het korte antwoord: wat is de SQL LIMIT-clausule?

De SQL-LIMIT-clausule is een handige clausule die aangeeft hoeveel records een query moet teruggeven na het filteren van data. Met deze techniek kun je alleen een subset van de data retourneren voor weergave of analyse. Daarom is de LIMIT-clausule belangrijk om grote datasets op te delen in kleinere stukken bij paginering. Het wordt ook gebruikt voor prestatie-optimalisatie om grote queries te vermijden die de database kunnen vertragen.

Het onderstaande voorbeeld laat het basisgebruik van de LIMIT-clausule zien om alleen de bovenste 10 records uit de tabel employees te tonen.

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

Syntaxis van de SQL LIMIT-clausule

De SQL-LIMIT-clausule staat in de SELECT-instructie om het aantal door een query teruggegeven records te bepalen. De LIMIT-clausule wordt aan het einde van de instructie toegevoegd om de records te filteren zoals gespecificeerd. Je kunt ook de SQL Basics Cheat Sheet van DataCamp bekijken om meer te leren over LIMIT en andere veelvoorkomende SQL-clausules.

-- 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;

Hier is de LIMIT-clausule in een praktisch voorbeeld. De query toont alleen 10 records uit de tabel employees voor de kolommen first_name, last_name en 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;

Soms kun je de optionele OFFSET-clausule gebruiken om een specifiek aantal rijen over te slaan voordat de bedoelde rijen worden weergegeven. De syntaxis van OFFSET staat hieronder.

-- 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;

In de bovenstaande SQL-query geeft number_of_rows het aantal rijen aan dat moet worden geretourneerd, terwijl offset_value aangeeft hoeveel rijen de query moet overslaan voordat ze worden geretourneerd. 

Het onderstaande voorbeeld laat zien hoe je SQL-OFFSET- en LIMIT-clausules gebruikt om het aantal te retourneren rijen te bepalen. Terwijl de LIMIT-clausule aangeeft dat er 10 records worden geretourneerd, slaat de OFFSET-clausule in de query de eerste 5 records over. Daarom tonen de resultaten records van de 6e rij tot en met de 15e rij (10 rijen).

-- 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;

Belangrijke punten om te onthouden over de SQL LIMIT-clausule

Begrijpen hoe je de LIMIT-clausule correct implementeert en hoe deze varieert tussen verschillende SQL-databases is cruciaal voor het optimaliseren van queryprestaties en het garanderen van correcte data-opvraging. Laten we enkele belangrijke punten bekijken. 

De positie van LIMIT in de SELECT-instructie

De LIMIT-clausule staat meestal aan het einde van de SELECT-instructie, na de FROM-clausule. Als je andere optionele aggregatieclausules gebruikt, zoals WHERE, GROUP BY en ORDER BY, zorg er dan voor dat de LIMIT-clausule aan het einde van de query staat.

-- 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;

LIMIT combineren met ORDER BY

De LIMIT-clausule kan worden gecombineerd met de ORDER BY-aggregatie voor consistente en voorspelbare resultaten. Deze techniek zorgt ervoor dat de data in een bepaalde volgorde staat voordat je ze ophaalt. In het onderstaande voorbeeld sorteren we de data op hire_date in aflopende volgorde voordat we de gefilterde rijen tonen.

-- 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;

Ik raad aan om DataCamp’s Associate Data Analyst in SQL-carrièrepad en de cursus Reporting in SQL te volgen om meer te leren over aggregatiefuncties en hun toepassing in data-analyse.

SQL LIMIT-varianten en syntaxis per database

De bovenstaande voorbeelden laten het gebruik van SQL-LIMIT-clausules zien in ondersteunde PostgreSQL-, SQLite- en MySQL-databases.

Om vergelijkbare resultaten te bereiken in SQL Server, kun je de TOP-functie gebruiken om het aantal te retourneren records te bepalen.

-- 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;

Op dezelfde manier ondersteunt de Oracle-database het gebruik van FETCH FIRST n ROWS ONLY om het aantal te retourneren records in een query te bepalen.

-- 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 en OFFSET bij paginering

SQL-LIMIT en OFFSET worden meestal gecombineerd voor efficiënte datapaginering. Deze techniek zorgt ervoor dat grote datasets worden opgedeeld in kleinere, beheersbare stukken voor een passende weergave.

In het onderstaande voorbeeld beperken de LIMIT- en OFFSET-clausules de weergegeven rijen tot 10, maar starten ze vanaf de 21e rij.

-- 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;

Veelvoorkomende use-cases van de SQL LIMIT-clausule

  • Paginering: In combinatie met de OFFSET-clausule wordt de LIMIT-clausule gebruikt in webapplicaties voor datapaginering. Deze techniek toont data in kleinere stukken/subsets, bijvoorbeeld op verschillende webpagina’s.
  • Prestaties optimaliseren: De LIMIT-clausule kan de prestaties van queries verbeteren door de belasting op databaseservers te verminderen. Dit gebeurt door kleinere datasubsets tegelijk op te halen en terug te geven.
  • Data sampling: De LIMIT-clausule is nuttig in data-analyse door kleinere datasubsets op te halen. Deze methode helpt data-analisten om de prestaties tijdens analyses te verbeteren.

Beperkingen van het SQL LIMIT-commando

De beperkingen van de SQL-LIMIT-clausule zijn onder andere:

  • Niet door alle databases ondersteund: De LIMIT-clausule wordt niet in alle databases ondersteund. Zo is de LIMIT-clausule niet beschikbaar in SQL Server- en Oracle-databases. 
  • Prestatieproblemen bij grote OFFSET-waarden: Het gebruik van grote OFFSET-waarden kan databaseservers vertragen, wat leidt tot tragere query-uitvoering.

Om de beperkingen van verschillende databases te omzeilen, kun je de volgende alternatieven gebruiken.x

De TOP-clausule in SQL Server

De TOP-clausule geeft dezelfde resultaten als de LIMIT-clausule voor de SQL Server-database.

-- 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 in SQL Server en DB2

FETCH FIRST n ROWS ONLY geeft ook vergelijkbare resultaten als de LIMIT-clausule voor de SQL Server- en DB2-databases.

-- 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 in Oracle

In de Oracle-database bepaalt de ROWNUM-functie het aantal teruggegeven records. De functie wordt gecombineerd in een subquery om de data naar wens te filteren.

-- 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;

Conclusie

De SQL-LIMIT-clausule is belangrijk om het aantal rijen te beperken dat wordt weergegeven nadat data uit een database is opgehaald. Als dataprofessional is het belangrijk om de verschillende use-cases van de LIMIT-clausule voor data-analyse en -manipulatie te begrijpen. Houd ook rekening met de ondersteuning van de LIMIT-clausule per database en gebruik alternatieve functies wanneer je met niet-compatibele databases zoals SQL Server en Oracle werkt.

Om de verschillende toepassingen van de SQL-LIMIT-clausule te begrijpen, moet je blijven oefenen met verschillende datasets. DataCamp’s Learn SQL en Intermediate SQL-cursussen zijn geschikt om geavanceerde SQL-vaardigheden op te doen. Ik raad ook DataCamp’s SQL Associate Certification aan om je kennis van SQL te laten zien en je te onderscheiden van andere dataprofessionals.

Allan Ouko

Auteur

Allan Ouko

\n
\n
\n
\n
Technical writer voor data science met praktische ervaring in data-analyse, business intelligence en data science. Ik schrijf praktische, op de industrie gerichte content over SQL, Python, Power BI, Databricks en data engineering, gebaseerd op analytisch werk in de echte wereld. Mijn schrijfwerk slaat een brug tussen technische diepgang en zakelijke impact, en helpt professionals om data om te zetten in onderbouwde beslissingen.
\n
\n
\n
\n

Veelgestelde vragen

Waarvoor wordt de SQL LIMIT-functie gebruikt?

De SQL-LIMIT-functie bepaalt hoeveel rijen worden teruggegeven uit gefilterde data.

Wat is het belangrijkste gebruik van SQL LIMIT?

SQL-LIMIT wordt vooral gebruikt voor datapaginering op webpagina’s om het aantal weergegeven rijen te beperken.

Wordt de SQL LIMIT-clausule in alle databases ondersteund?

De SQL-LIMIT-functie wordt alleen ondersteund in PostgreSQL-, MySQL- en SQLite-databases. De clausule wordt niet ondersteund in SQL Server- en Oracle-databases.

Wat is het alternatief voor de LIMIT-clausule in niet-ondersteunde databases?

Het alternatief voor SQL-LIMIT in SQL Server is de TOP- en FETCH FIRST n ROWS ONLY-clausules. De Oracle-database gebruikt de ROWNUM-functie als alternatief voor LIMIT.

Waarvoor wordt OFFSET gebruikt in de SQL LIMIT-clausule?

We kunnen OFFSET gebruiken om het aantal rijen te specificeren dat moet worden overgeslagen voordat het opgegeven aantal rijen uit de LIMIT-clausule wordt teruggegeven.

Onderwerpen

Gerelateerd