Lektion 2: Datensätze sortieren und ihre Anzahl begrenzen
Welches ist das bevölkerungsreichste Land? Welches Land ist am kleinsten? Und welches hat den geringsten CO2-Ausstoß? Um solche Fragen zu beantworten, lernen Sie in dieser Lektion, Datensätze zu sortieren.
Kurzbeschreibung der Datenbank Welt
Die Datenbank enthält in einer Tabelle Laender eine Auswahl an Daten zu verschiedenen Ländern der Erde. Neben geographischen Daten liegen auch wirtschaftliche und soziale Daten vor.
Eine weitere Tabelle Berge enthält geographische Daten zu einigen der höchsten Berge der Erde. Die Zuordnung der Berge zu den Ländern erfolgt in einer dritten Tabelle liegt_in, da es Berge gibt, die auf der Grenze mehrerer Länder liegen.
Eine detaillierte Übersicht über die Daten und Quellenangaben finden Sie hier.
Lernaufgaben zur Datenbank Welt
Die einzelnen Bestandteile eines SQL-Befehls bezeichnet man auch als Klauseln. Bislang enthalten Ihre Befehle eine SELECT- und eine FROM-Klausel.
Ergänzen Sie in einer SQL-Abfrage eine ORDER BY-Klausel, um die Datensätze nach einem bestimmten Attribut sortiert auszugeben.
ORDER BY gefolgt von dem Attribut, nach dem sortiert werden soll, steht hinter der FROM-Klausel:
SELECT ... FROM ... ORDER BY Attribut I) Geben Sie einen SQL-Befehl ein, der die Datensätze der Tabelle Laender nach der Flaeche sortiert ausgibt.
Tipp
Geben Sie hinter ORDER BY das Attribut Flaeche an.
mögliche Lösung
SELECT * FROM Laender ORDER BY Flaeche
Die Sortierung erfolgt standardmäßig aufsteigend. Durch Angabe der Schlüsselwörter ASC oder DESC legen Sie explizit fest, ob die Datensätze aufsteigend bzw. absteigend sortiert werden. Das Schlüsselwort steht hinter dem Attribut, nach dem sortiert werden soll.
II) Geben Sie einen SQL-Befehl ein, der alle Datensätze der Tabelle Berge absteigend nach der Höhe sortiert ausgibt.
Tipp
Geben Sie hinter ORDER BY das Attribut Hoehe und das Schlüsselwort DESC an.
mögliche Lösung
SELECT * FROM Berge ORDER BY Hoehe DESC
Kombinieren Sie die Sortierung der Datensätze mit der Ausgabe ausgewählter Attribute: III) Geben Sie einen SQL-Befehl ein, der die Attribute Name, Flaeche und Einwohnerzahl der Tabelle Laender absteigend sortiert nach der Einwohnerzahl ausgibt.
Tipp
Geben Sie hinter SELECT die Attribute Name, Flaeche und Einwohnerzahl an. Geben Sie hinter dem Befehl ORDER BY das Attribut Einwohnerzahl und das Schlüsselwort DESC an.
mögliche Lösung
SELECT Name, Flaeche, Einwohnerzahl FROM Laender ORDER BY Einwohnerzahl DESC
Eine Sortierung kann auch nach mehreren Attributen erfolgen. Die Attribute, nach denen sortiert werden soll, werden durch Komma getrennt hinter ORDER BY angegeben. Es wird zunächst nach dem ersten Attribut sortiert. Für gleiche Werte des ersten Attributs werden die Datensätze nach dem zweiten Attribut sortiert usw. IV) Geben Sie einen SQL-Befehl ein, der zu den Ländern die Attribute Name, Kontinent und Flaeche ausgibt. Dabei sollen die Datensätze aufsteigend nach dem Attribut Kontinent und nachrangig absteigend nach dem Attribut Flaeche sortiert werden.
Tipp
Geben Sie hinter ORDER BY zuerst das Attribut Kontinent mit dem Schlüsselwort ASC und dann das Attribut Flaeche mit dem Schlüsselwort DESC an.
mögliche Lösung
SELECT Name, Kontinent, Flaeche FROM Laender ORDER BY Kontinent ASC, Flaeche DESC
Wenn Sie sich nur für das Land mit dem geringsten CO2-Ausstoß oder die fünf höchsten Berge interessieren, können Sie die Anzahl der ausgegebenen Datensätze begrenzen.
Mit LIMIT gefolgt von einer Zahl legen Sie fest, wie viele Datensätze ausgegeben werden. Die LIMIT-Klausel steht hinter der ORDER BY-Klausel: SELECT ... FROM ... ORDER BY ... LIMIT Anzahl
V) Geben Sie einen SQL-Befehl ein, der Name und Höhe der fünf höchsten Berge ausgibt.
Tipp
Wählen Sie eine absteigende Sortierung nach dem Attribut Hoehe und begrenzen Sie die Anzahl der Datensätze mit LIMIT5.
mögliche Lösung
SELECT Name, Hoehe FROM Berge ORDER BY Hoehe DESC LIMIT 5
Kombiniert man die Sortierung nach einem Attribut mit der Begrenzung der Anzahl der Datensätze auf 1, wird nur der Datensatz mit dem niedrigsten bzw. höchsten Wert für dieses Attribut ausgegeben. VI) Geben Sie einen SQL-Befehl ein, der die Attribute Name und CO2Emission des Landes mit dem geringsten CO2-Ausstoß (in t pro Kopf) ausgibt.
Tipp
Wählen Sie eine aufsteigende Sortierung nach dem Attribut CO2Emission und begrenzen Sie die Anzahl der Datensätze mit LIMIT1
mögliche Lösung
SELECT Name, CO2Emission FROM Laender ORDER BY CO2Emission ASC LIMIT 1
Für Interessierte: Manche Datenbanksysteme erlauben auch die Angabe von zwei Werten hinter LIMIT. Der erste Wert gibt an, wie viele Datensätze übersprungen werden sollen, bevor die im zweiten Wert angegebene Anzahl an Datensäten ausgegeben wird. Die Angabe LIMIT 2, 4 führt beispielsweise dazu, dass vier Datensätze ausgegeben werden, wobei die ersten beiden Datensätze übersprungen werden. VII) Geben Sie einen SQL-Befehl ein, der die Attribute Name und CO2Emission der Länder ausgibt, die bzgl. des geringsten CO2-Ausstoßes (in t pro Kopf) die Plätze 2 und 3 belegen.
Tipp
Wählen Sie eine aufsteigende Sortierung nach dem Attribut CO2Emission. Geben Sie hinter LIMIT zwei Parameter an, so dass der erste Datensatz bei der Ausgabe übersprungen wird.
mögliche Lösung
SELECT Name, CO2Emission FROM Laender ORDER BY CO2Emission ASC LIMIT 1, 2