Welche Länder liegen in Europa? Welche Berge sind höher als 8000m? Und welche Länder haben einen CO2-Ausstoß unter einer Tonne pro Kopf? Um solche Fragen zu beantworten, lernen Sie in dieser Lektion, nur Datensätze auszuwählen, die bestimmte Bedingungen erfüllen.
Beschreibung 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
Um nur bestimmte Datensätze auszugeben, benötigen Sie in Ihrer SQL-Abfrage eine WHERE-Klausel. Hinter WHERE wird eine Bedingung angegeben, die sich auf den Wert eines Attributs bezieht. Nur wenn der entsprechende Attributwert eines Datensatzes die Bedingung erfüllt, wird der Datensatz in die Ergebnistabelle aufgenommen.
Die WHERE Klausel steht hinter der FROM-Klausel:
SELECT ... FROM ... WHERE Bedingung ORDER BY ... LIMIT ...
Beispielsweise wählt die folgende SQL-Anweisung alle Datensätze der Tabelle Laender aus, bei denen das Attribut Kontinent den Wert 'Europa' hat: SELECT Name, Kontinent FROM Laender WHERE Kontinent = 'Europa'
I) Geben Sie einen SQL-Befehl ein, der alle Länder Afrikas ausgibt.
Tipp
Ersetzen Sie in der Beispielanfrage 'Europa' durch 'Afrika'.
mögliche Lösung
SELECT Name, Kontinent FROM Laender WHERE Kontinent = 'Afrika'
Wenn der Wert eines Attributs eine Zeichenkette ist, muss dieser in der Bedingung in Anführungszeichen stehen. Zahlwerte werden ohne Anführungszeichen angegeben.
II) Geben Sie einen SQL-Befehl ein, der alle Länder mit Name, Anzahl_Aerzte (pro 10000 Einwohner) und Erhebungsjahr_Aerzte ausgibt, für die die Anzahl der Ärzte im Jahr 2022 erhoben wurde.
Tipp
Verwenden Sie eine WHERE-Klausel mit der Bedingung Erhebungsjahr_Aerzte = 2022.
mögliche Lösung
SELECT Name, Anzahl_Aerzte, Erhebungsjahr_Aerzte FROM Laender WHERE Erhebungsjahr_Aerzte = 2022
Bedingungen können mithilfe der Operatoren =, !=, >, <, >= und <= formuliert werden. != steht für ungleich. III) Geben Sie einen SQL-Befehl ein, der die Attribute Name und BIP aller Länder ausgibt, deren Bruttoinlandsprodukt höher als 1000 (Mrd. US $) ist.
Tipp
Die Tabelle Laender enthält das BIP bereits in der Einheit Mrd. US $.
Verwenden Sie in der WHERE-Klausel den Operator >, um die Bedingung für das Attribut BIP zu formulieren.
mögliche Lösung
SELECT Name, BIP FROM Laender WHERE BIP > 1000
Zwei oder mehr Bedingungen können mit AND verknüpft werden. In diesem Fall muss ein Datensatz alle Bedingungen erfüllen, damit er ausgewählt wird. IV) Geben Sie einen SQL-Befehl ein, der alle Länder mit den Attributen Name, Lebenserwartung_Frauen und Lebenserwartung_Maenner ausgibt, in denen die Lebenserwartung der Frauen und der Männer über 80 Jahren liegt.
Tipp
Geben Sie in der WHERE-Klausel sowohl eine Bedingung für das Attribut Lebenserwartung_Frauen als auch für das Attribut Lebenserwartung_Maenner an und verbinden Sie diese mit AND.
mögliche Lösung
SELECT Name, Lebenserwartung_Frauen, Lebenserwartung_Maenner FROM Laender WHERE Lebenserwartung_Frauen > 80 AND Lebenserwartung_Maenner > 80
Zwei oder mehr Bedingungen können auch mit OR verknüpft werden. In diesem Fall muss ein Datensatz mindestens eine der Bedingungen erfüllen, damit er ausgewählt wird.
V) Geben Sie einen SQL-Befehl ein, der alle Länder mit den Attributen Name, Lebenserwartung_Frauen und Lebenserwartung_Maenner ausgibt, in denen die Lebenserwartung der Frauen oder der Männer unter 60 Jahren liegt.
Tipp
Geben Sie in der WHERE-Klausel sowohl eine Bedingung für das Attribut Lebenserwartung_Frauen als auch für das Attribut Lebenserwartung_Maenner an und verbinden Sie diese mit OR
mögliche Lösung
SELECT Name, Lebenserwartung_Frauen, Lebenserwartung_Maenner FROM Laender WHERE Lebenserwartung_Frauen < 60 OR Lebenserwartung_Maenner < 60
Die Verknüpfung von Bedingungen mit AND bzw. OR kann auch kombiniert werden. Eine AND-Verknüpfung bindet dabei stärker als eine OR-Verknüpfung. Setzen Sie eine OR-Verknüpfung in runde Klammern, wenn diese vor der AND-Verknüpfung ausgewertet werden soll. VI) Geben Sie einen SQL-Befehl ein, der alle Länder in Europa mit den Attributen Name und CO2Emission ausgibt, bei denen der CO2-Ausstoß (in t pro Kopf) unter 3 oder über 8 liegt. Sortieren Sie die Datensätze aufsteigend nach dem Attribut CO2Emission
Tipp
Sie benötigen zwei Bedingungen für das Attribut CO2Emission, die Sie mit OR verbinden. Setzen Sie die OR-Verknüpfung in runde Klammern.
Außerdem benötigen Sie eine Bedingung für das Attribut Kontinent, die Sie mit einer AND-Verknüpfung ergänzen .
mögliche Lösung
SELECT Name, CO2Emission FROM Laender WHERE Kontinent = 'Europa' and (CO2Emission < 3 OR CO2Emission > 8) ORDER BY CO2Emission