Tipp: SQLite-Datenbank
Verwenden Sie für diese Repetitionsaufgaben den SQLLite-Browser und die folgende Datenbank:
Aufgabe: ER-Diagramm
Analysieren Sie die Tabellenstruktur der Miniterra-Datenbank und zeichnen Sie ein entsprechendes ER-Diagramm.
Lösung
Aufgabe: SQL-Abfragen formulieren
Formulieren Sie SQL-Abfragen, um die folgenden Fragen zu beantworten:
- Welches ist der längste Fluss, der ins Mittelmeer fliesst?
- Welcher Fluss fliesst durch Budapest?
- Welche Städte liegen am Rhein?
- Welches sind die Nachbarländer von Argentinien?
- Welches Land hat Port Louis als Hauptstadt?
- Was ist die Hauptstadt von Nigeria?
- Liste alle Länder in Asien mit Namen auf und füge den Namen ihres Hauptortes dazu (falls sie einen haben)
- Welches ist das bevölkerungsreichste Land von Afrika?
- Wie viele Länder gibt es in Europa?
- Wie viele Menschen leben in Europa?
Lösung: SQL-Abfragen formulieren
sql
SELECT name FROM fluss
WHERE meer = "Mittelmeer" ORDER BY laenge DESC;sql
SELECT fluss.name FROM fluss
JOIN fliesst_durch ON fliesst_durch.fluss_id = fluss.id
JOIN ort ON fliesst_durch.ort_id = ort.id
WHERE ort.name = "Budapest";sql
SELECT ort.name FROM fluss
JOIN fliesst_durch ON fliesst_durch.fluss_id = fluss.id
JOIN ort ON fliesst_durch.ort_id = ort.id
WHERE fluss.name = "Rhein";sql
SELECT land1.name, land2.name FROM land as land1
JOIN nachbarland ON land1.id = nachbarland.land_1
JOIN land AS land2 on land2.id = nachbarland.land_2
WHERE land1.name = "Argentinien" OR land2.name = "Argentinien";sql
SELECT land.name FROM land
JOIN ort ON ort.id = land.hauptort_id
WHERE ort.name = "Port Louis"sql
SELECT ort.name FROM land
JOIN ort ON ort.id = land.hauptort_id
WHERE land.name = "Nigeria"sql
SELECT land.name, ort.name AS hauptort FROM land
LEFT JOIN ort ON ort.id = land.hauptort_id
JOIN kontinent ON land.kontinent_id = kontinent.id
WHERE kontinent.name = "Asien"sql
SELECT land.name, land.einwohner FROM land
JOIN kontinent ON land.kontinent_id = kontinent.id
WHERE kontinent.name = "Afrika"
ORDER BY land.einwohner DESCsql
SELECT count(*) FROM land
JOIN kontinent ON land.kontinent_id = kontinent.id
WHERE kontinent.name = "Europa"sql
SELECT sum(land.einwohner) FROM land
JOIN kontinent ON land.kontinent_id = kontinent.id
WHERE kontinent.name = "Europa"Aufgabe: SQL-Aufgaben erfinden
- Formulieren Sie eine Frage, die mit der miniterra-Datenbank beantwortet werden kann.
- Schreiben Sie eine SQL-Abfrage welche die Frage beantworten.
- Schicken Sie die Frage und die SQL-Abfrage per E-Mail an den Informatiklehrer.