LIMIT und OFFSET
Die ersten N Zeilen abrufen und paginieren
LIMIT und OFFSET ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Nur wenige Zeilen abrufen
Manchmal benötigen Sie nicht jede passende Zeile, sondern nur die ersten paar. LIMIT begrenzt, wie viele Zeilen die Abfrage zurückgibt.
Damit werden höchstens 5 Produkte zurückgegeben.
SELECT name, price
FROM products
LIMIT 5;LIMIT ohne ORDER BY ist zufällig
LIMIT allein liefert Ihnen einige Zeilen, aber es ist nicht festgelegt, welche Zeilen das sind. Kombinieren Sie es immer mit ORDER BY, damit das Ergebnis sinnvoll und wiederholbar ist.
-- The 5 newest orders, deterministically
SELECT id, total, created_at
FROM orders
ORDER BY created_at DESC
LIMIT 5;Zeilen mit OFFSET überspringen
OFFSET weist die Datenbank an, vor der Rückgabe eine bestimmte Anzahl von Zeilen zu überspringen. Zusammen mit LIMIT bildet es die Grundlage der Seitennavigation.
Damit werden die ersten 10 Zeilen übersprungen und die nächsten 5 zurückgegeben.
SELECT name, price
FROM products
ORDER BY name
LIMIT 5 OFFSET 10;Seiten erstellen
Bei einer Seitengröße von 10 werden die Seitennummern wie folgt auf Offsets abgebildet:
- Seite 1:
OFFSET 0 - Seite 2:
OFFSET 10 - Seite 3:
OFFSET 20
Die Formel lautet OFFSET = (page - 1) * page_size.
-- Page 3 with 10 rows per page
SELECT name, price
FROM products
ORDER BY name
LIMIT 10 OFFSET 20;Reihenfolge der Verarbeitung
Die Datenbank wendet die Klauseln in dieser Reihenfolge an: mit WHERE filtern, mit ORDER BY sortieren und anschließend mit OFFSET und LIMIT kürzen.
Sie blättern also immer durch das sortierte, gefilterte Ergebnis.
SELECT name, price
FROM products
WHERE price > 0
ORDER BY price DESC
LIMIT 10 OFFSET 0;LIMIT ALL und OFFSET 0
LIMIT ALL bedeutet „keine Begrenzung“ (dasselbe wie das Weglassen von LIMIT), und OFFSET 0 überspringt nichts. Sie sind gelegentlich nützlich, wenn ein Wert dynamisch erstellt wird.
SELECT name
FROM products
ORDER BY name
LIMIT ALL OFFSET 0;Die standardkonforme FETCH-Syntax
PostgreSQL unterstützt auch die vom SQL-Standard vorgegebene Form: OFFSET n ROWS FETCH NEXT m ROWS ONLY. Sie bewirkt genau dasselbe wie LIMIT/OFFSET, ist aber ausführlicher.
SELECT name, price
FROM products
ORDER BY name
OFFSET 10 ROWS
FETCH NEXT 5 ROWS ONLY;Warum große OFFSET-Werte langsam sind
Ein großer OFFSET zwingt die Datenbank weiterhin dazu, jede übersprungene Zeile zu lesen und zu verwerfen. OFFSET 100000 liest 100.000 Zeilen, nur um sie anschließend wegzuwerfen. Das wird bei weit hinten liegenden Seiten langsam.
-- Reads 100000 rows then discards them
SELECT id, name
FROM products
ORDER BY id
LIMIT 10 OFFSET 100000;Keyset-Paginierung
Eine schnellere Alternative ist die Keyset-Paginierung (auch Seek-Paginierung genannt). Statt eines Offsets merken Sie sich die letzte angezeigte Zeile und fordern die Zeilen danach an.
So gelangen Sie mithilfe eines Index direkt zur nächsten Seite, ohne Zeilen zu überspringen.
-- Next page after the last seen id (e.g. 5000)
SELECT id, name
FROM products
WHERE id > 5000
ORDER BY id
LIMIT 10;Für stabile Seiten brauchen Sie eine stabile Sortierung
Wenn Ihre ORDER BY-Klausel Gleichstände enthält, können sich Zeilen zwischen dem Laden von Seiten verschieben, sodass Duplikate oder Lücken auftreten. Beenden Sie die Sortierung mit einem eindeutigen Schlüssel, etwa dem Primärschlüssel, damit die Seitennavigation konsistent bleibt.
SELECT id, name, price
FROM products
ORDER BY price DESC, id
LIMIT 10 OFFSET 20;Eine einzelne oberste Zeile
LIMIT 1 ist eine schnelle Möglichkeit, eine einzelne Zeile abzurufen, etwa das teuerste Produkt oder die neueste Bestellung. Kombinieren Sie es mit dem passenden ORDER BY.
SELECT name, price
FROM products
ORDER BY price DESC
LIMIT 1;Schnellüberprüfung
Sie zeigen 10 Zeilen pro Seite an. Welche Klausel liefert Seite 3?
Zusammenfassung
Sie können Ihre Ergebnisse jetzt in Abschnitte aufteilen:
LIMIT nbegrenzt die Anzahl der ZeilenOFFSET müberspringt Zeilen;OFFSET = (page-1)*size- Kombinieren Sie diese Angaben immer mit
ORDER BY, damit die Seiten vorhersehbar bleiben - Verwenden Sie aus Geschwindigkeitsgründen bei großen Offsets vorzugsweise die Keyset-Paginierung
Als Nächstes verwenden Sie diese Werkzeuge, um Top-N-Datensätze zu finden.
SELECT name, price
FROM products
ORDER BY name
LIMIT 10 OFFSET 20;Häufig gestellte Fragen
Ist die Lektion „LIMIT und OFFSET“ kostenlos?
Ja — der vollständige Text von „LIMIT und OFFSET“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „LIMIT und OFFSET“?
Die ersten N Zeilen abrufen und paginieren Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um SQL Academy zu starten?
Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „LIMIT und OFFSET“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?
Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.