SQL: Resultset eingrenzen mit LIMIT

Es ist nicht immer sinnvoll alle Daten einer Abfrage anzuzeigen. Die Begrenzung einer Datenbankabfrage ist z.B. ein wichtiges Werkzeug um Abfragen zu beschleunigen. Da das Ziel von vielen Abfragen ist, die Struktur der Daten zuerkennen, um eine Idee davon zubekommen, welche Spalten man berücksichtigen muss und wie man die Daten manipulieren kann, ist die Ausgabe von allen Datensätzen hier sowieso nicht erforderlich und eine unnötige Wartequelle. Somit kannst du dir mit LIMIT nur die ersten Datensätze ausgeben und das System nur nach n Werten suchen lassen, die Suche nach weiteren Datensätzen wird eingestellt. Die allgemeine SQL-Syntax lautet:

SELECT column_name FROM table LIMIT a, n

n: Maximale Anzahl der Elemente die ausgegeben werden

a: das Element bei dem die Datensatzausgabe startet (Beachte: SQL startet bei 0 mit Zählen)

Beachte: Sobald nur ein Parameter von LIMIT gefüllt ist, gilt dieser immer als Anzahl der Elemente (n)! Für a wird dann die 0 angenommen!

Beispiel:

SELECT last_name, first_name, actor_id FROM actor LIMIT 10;

Diese Abfrage liest nur 10 (n) Datensätze aus, auch wenn es weitere Datensätze in der Tabelle gibt.

Bei der folgenden Abfrage werden 2 (n) Datensätze ausgegeben, wobei bei die Ausgabe nach dem 10. Datensatz (a) startet:

SELECT last_name, first_name, actor_id FROM actor LIMIT 10,2;

LIMIT in der WHERE Klausel:

Die allgemeine SQL-Syntax mit WHERE Klausel lautet:

SELECT column_name from table WHERE condition LIMIT a, n

SELECT last_name, first_name, actor_id FROM actor WHERE last_name < ‚E‘ LIMIT 10;

Die Abfrage gibt die ersten 10 Schauspieler aus, die einen Nachname haben, der mit einem Buchstaben kleiner als E beginnt.

LIMIT in der ORDER BY Klausel:

Wenn eine ORDER BY-Klausel den Ausdruck LIMIT enthält, wird das Resultset den Sortierungsvorgaben entsprechend angezeigt und die Anzahl der ausgegebenen Datensätze wird durch den LIMIT-Ausdruck begrenzt. Die allgemeine SQL-Syntax mit ORDER BY Klausel lautet:

SELECT column_name from table WHERE condition ORDER BY Column_name LIMIT a, n

SELECT last_name, first_name, actor_id FROM actor WHERE last_name < ‚E‘ ORDER BY actor_id LIMIT 10;

Die Abfrage gibt die 10 Schauspieler aus, die die kleinsten actor_Id‘s haben, da die ORDER BY Klausel die Datensätze nach ihrer actor_id aufsteigend ausgibt.

(Visited 13.458 times, 1 visits today)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert