Inhaltsverzeichnis

Anzahl der Datensätze und LIMIT

Haben Sie sich schon mal überlegt, wie viele Datensätze z.B. in der Tabelle tblPersonen vorhanden sind?

Wenn Sie eine Tabelle in der Datenansicht öffnen, sehen Sie dies häufig nicht. Das ist der Unterschied zu Excel. Da können Sie ganz nach unten scrollen und sehen, wie viele Personen vorhanden sind. Bei DBS ist dies in der Regel nicht möglich. Da braucht man spezielle Befehle, um die herauszufinden.

Wenn die Tabellen nicht allzu gross sind, dann werden bei einem 'SELECT' alle Datensätze geladen. Dann sehen Sie direkt im SQL-Editor die Anzahl:

Aber Achtung! Das heisst nie, dass die Tabelle so viele Datensätze hat. Die Meldung sagt nur, dass so viele Datensätze in den Speicher (in das RAM) geladen wurden.

Anzahl Datensätze mit count() herausfinden

Um die echte Anzahl Datensätze herauszufinden, wir der Befehl count() verwendet. Den werden Sie im Kapitel Datensätze mit GROUP BY gruppieren nochmals antreffen. Aber hier schon mal eine einfache Variante davon:

SELECT * FROM tblPersonen;
SELECT COUNT(*) FROM tblPersonen;

Den ersten Befehl kennen Sie unterdessen zur Genüge. Den zweiten kennen Sie jetzt auch😂. Mich dünkt, der ist einigermassen selbsterklärend, oder?

Aufgabe 1

Was könnte das Sternchen bedeuten in der Klammer von count(*)?

Lösung

Anstelle des Sternchens kann ein einzelnen Attribut angegeben werden, beispielsweise so:

SELECT COUNT(NUMBER) FROM tblPersonen;

Hier aber vorsichtig, das gibt Ihnen unter Umständen nicht die korrekte Anzahl der Datensätze zurück.

Aufgabe 2

Warum nicht? Überlegen Sie, warum das so ist.

LIMIT

Syntax von LIMIT

[LIMIT [Offset, ] Anzahl]

Bei riesigen Datenmengen kann es praktisch sein, nur einen Teil der Datensätze auszugeben. Das geschieht mit LIMIT.

Hier ein Beispiel:

SELECT tNachname, tVorname FROM tblKunden ORDER BY tNachname ASC, tVorname ASC LIMIT 5;

Das gibt eine sortierte Liste mit nur den beiden angegebenen Spalten an, aber es werden nur die ersten 5 Datensätze ausgegeben:

Wichtiger Hinweis: es werden zuerst alle anderen Bedingungen in der SELECT-Anweisung erfüllt, und erst am Schluss wird mit LIMIT die Ausgabe gekürzt.

Offset angeben

Optional kann auch ein OFFSET-Wert angegeben werden. Ein Offset ist ein "Zuschlag". Ohne Offset (resp. Offset von 0) beginnt die Ausgabe bei Datensatz 1.

Beträgt der Offset 1, beginnt die Ausgabe ab dem zweiten Datensatz, etc.

Aufgabe 3

Passen Sie die obige Abfrage an und geben vor der Zahl 5 noch die Zahl 2 ein:

SELECT tNachname, tVorname FROM tblKunden ORDER BY tNachname ASC, tVorname ASC LIMIT 2,5;

Wie hat sich nun die Ausgabe geändert?

Lösung