Übungen
Die nachfolgenden Übungen zu SQL beziehen sich nun auf die komplette terra-Datenbank, die folgendes Datenbankschema besitzt:
Falls du eine eigene MySQL- oder SQLite-Datenbank hast, dann kannst du für die folgenden Aufgaben die Daten importieren; ansonsten kannst du SQL auch direkt in den Aufgaben ausprobieren.
Download der terra-Datenbank für MySQL und für SQLite.
Aufgabe 1
- In welchen Fluss mündet die Amper? Löse mit einem einzigen SQL-Befehl!
- Welche Länder grenzen an Deutschland (mit Ausgabe der Ländernamen)?
Hilfe: ImWHERE
-Teil muss eineOR
-Bedingung vorhanden sein, da Deutschland in beiden Spalten der Tabellenachbarland
vorkommen kann.
Denke bei den Lösungen auch wieder daran, dass du keine Werte von Schlüsseln direkt abfragst!
Aufgabe 2
Welche österreichischen Flüsse münden in die Donau?
Hilfe: Der aufwändige SQL-Befehl kann so anfangen:
SELECT DISTINCT zufluss.Name
FROM fluss AS ziel, fluss AS zufluss, stadtfluss AS sf, ort, land
Aufgabe 3
Welche Länder haben Nachbarn in anderen Kontinenten?
Hilfe: Du wirst die land
-Tabelle und die kontinent
-Tabelle
zweimal benötigen!
Aufgabe 4 - für Experten
Die Nachbarländer von Deutschland wurden in einer Aufgabe oben schon herausgesucht. Vielleicht ist dir dabei auch als "Unschönheit" aufgefallen, dass Deutschland einmal als erstes und einmal als zweites Land genannt wurde. Woran liegt das?
Der folgende SQL-Befehl löst das Problem mit einem neuen Konstrukt. Kannst du den Befehl nachvollziehen?
Welche Vorstellung von einem Ergebnis eines SQL-Befehls liegt hier vor?
SELECT andere.Name, andere.Einwohner
FROM land AS deutsch, land AS andere, nachbarland
WHERE nachbarland.LNR1 = deutsch.LNR
AND andere.LNR = nachbarland.LNR2
AND deutsch.Name = 'Deutschland'
UNION
SELECT andere.Name, andere.Einwohner
FROM land AS deutsch, land AS andere, nachbarland
WHERE nachbarland.LNR2 = deutsch.LNR
AND andere.LNR = nachbarland.LNR1
AND deutsch.Name = 'Deutschland'
Aufgabe 5 - für Experten
- Bei welchen Nachbarn von Deutschland wird Deutsch gesprochen?
- Welche Nachbarländer sprechen grundsätzlich die gleiche Sprache?