Skip to content

Repetition

Datenbanken

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 DESC
sql
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.

Gymnasium Kirchenfeld, fts & ros