# Informatik ## Aufgabe 4 * Gib alle Länder (Namen, Einwohner) aus, die in Asien liegen. ``` SQL SELECT land.name, land.einwohner FROM land, kontinent WHERE land.KNR = kontinent.KNR && kontinent.Name = 'Asien' ``` * Sortiere die asiatischen Länder noch nach der Einwohnerzahl absteigend. ``` SQL SELECT land.name, kontinent.name FROM land, kontinent WHERE kontinent.KNR = kontinent.KNR && kontinent.name = 'Asien' ORDER BY land.einwohner desc ``` * Welche europäischen Länder haben mehr als 300.000 km2 Fläche? ``` SQL SELECT land.name FROM land, kontinent WHERE land.KNR = kontinent.KNR && kontinent.Name = 'Europa' && land.Flaeche > 300000 ``` ## Aufgabe 5 * Gib alle Orte mit mehr als 10 Mio. Einwohner mit ihren Ländern aus. Sortierung nach Einwohnerzahl absteigend. ``` SQL SELECT ort.name, , ort.einwohner, land.name FROM land, ort WHERE ort.einwohner > 10000000 && ort.LNR = land.LNR ORDER BY ort.einwohner desc ``` * Welche Orte in Europa haben mehr als 1 Mio. Einwohner? ``` SQL SELECT ort.Name, ort.Einwohner FROM ort, land, kontinent WHERE ort.LNR = land.LNR && land.KNR = kontinent.KNR && kontinent.Name = 'Europa' && ort.Einwohner > 1000000 ``` * Welche Orte haben mehr als 1 Mio. Einwohner und liegen in Ländern, die weniger als 10 Mio. Einwohner haben? ``` SQL SELECT ort.name FROM ort, land WHERE ort.LNR = land.LNR && ort.LNR = land.hauptonr && ort.einwohner > 1000000 && ort.einwohner < 10000000 ``` * Erzeuge eine Tabelle mit den Hauptstädten der Länder. ``` SQL SELECT ort.Name, land.Name FROM ort, land WHERE ort.lnr = land.lnr && land.hauponr = ort.onr ``` # Verbessern der Ausgabe ## Aufgabe 1 * Gib alle Orte aus, die über dem 65. nördlichen Breitengrad liegen Ausgabe von Name, Breite des Ortes und des Landesnamens Sortierung nach dem Breitengrad. ``` SQL SELECT ort.Name, ort.Breite, land.Name FROM ort, land WHERE ort.Breite > 65 && ort.LNR = land.LNR ORDER BY Breite DESC ``` ## Aufgabe 2 * Welche Länder liegen südlich des Äquators (Ausgabe des Landesnamens)? ``` SQL SELECT land.name FROM land, ort WHERE land.hauptonr = ort.onr && ort.Breite < 0 ``` ## Aufgabe 3 * Welche Kontinente liegen südlich des Äquators (Ausgabe nur des Kontinents)? ``` SQL SELECT kontinent.name FROM land, ort, kontinent WHERE ort.onr = land.hauptonr && land.knr = kontinent.knr && ort.breite < 0 ``` ## Aufgabe 4 * Kannst du die Ausgabe aus Beispiel 2 im Exkurs auch noch auf die Grad-Minuten erweitern? ![](https://i.imgur.com/1W1qWA4.png) ``` SQL SELECT land.name, ort.breite FROM land, ort WHERE land.hauptonr = ort.onr && ort.Breite < 0 ``` # Beziehungstabellen ## Aufgabe 1 * Welche Orte liegen an der Saar? Hilfe: Denke daran, dass du nicht direkt Werte in Fremdschlüsseln abfragen solltest. Daher wird der FROM-Teil so aussehen müssen: FROM fluss, stadtfluss, ort. ``` SQL SELECT ort.Name, fluss.Name FROM fluss, stadtfluss, ort WHERE stadtfluss.FNR = fluss.FNR && stadtfluss.ONR = ort.ONR && fluss.Name = 'Saar' ``` ## Aufgabe 2 * Welche Flüsse fließen durch die Stadt "Hann. Münden" (früher Hannoversch Münden)? Warum kommen hier drei Flüsse heraus, obwohl auf der Karte nur die Einmündung eines Flusses in einen anderen zu sehen ist? Es liegt daran, dass der Fluss sich verzweigt. Dadurch kann ein dritter entstehen. ``` SQL SELECT ort.Name, fluss.Name FROM fluss, stadtfluss, ort WHERE stadtfluss.FNR = fluss.FNR && stadtfluss.ONR = ort.ONR && ort.Name = 'Hann. Münden' ``` ## Aufgabe 3 * Welche Orte durchfließt der Rhein in Rheinland-Pfalz? Ordne die Orte nach dem Rheinkilometer. ``` SQL SELECT ort.Name, fluss.Name, ort.Landesteil, stadtfluss.KM FROM fluss, stadtfluss, ort WHERE stadtfluss.FNR = fluss.FNR && stadtfluss.ONR = ort.ONRfluss.Name = 'Rhein' && ort.Landesteil = 'Rheinland-Pfalz' ORDER BY stadtfluss.KM ASC ``` ## Aufgabe 4 * Welche Länder durchfließt die Donau? Hilfe: Du wirst den SELECT DISTINCT-Befehl benötigen. ``` SQL SELECT DISTINCT land.Name, fluss.Name FROM fluss, stadtfluss, ort, land WHERE stadtfluss.FNR = fluss.FNR && stadtfluss.ONR = ort.ONR && ort.LNR = land.LNR && fluss.Name = 'Donau' ``` ## Aufgabe 5 * Welche Flüsse sind in Deutschland erfasst? ``` SQL SELECT DISTINCT land.Name, fluss.Name FROM fluss, stadtfluss, ort, land WHERE stadtfluss.FNR = fluss.FNR && stadtfluss.ONR = ort.ONR && ort.LNR = land.LNR && land.Name = 'Deutschland' ``` # Aufgabe 6 ## Tabellen: