MINT üben

Datenbanken im Abitur

Schlüssel, Anomalien, WHERE und HAVING — 30 Aufgaben rund um Datenbanken.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Dreißig Aufgaben vom Lesen eines Schemas (AFB I) bis zur Abschätzung von Ergebnisgrößen (AFB III). A17 und A23 nutzen dieselbe Beispieltabelle.

A1
Schlüssel erkennen
AFB I

Schema: Mitglied(MNr, Name, ↑AbtKuerzel), Abteilung(Kuerzel, Bezeichnung). Gib alle zutreffenden Aussagen an.

Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
Der Fremdschlüssel steht auf der n-Seite: Jedes Mitglied hat genau eine Abteilung, eine Abteilung viele Mitglieder. Für mehrere Abteilungen je Mitglied bräuchte man eine eigene Tabelle.
Frage: Was bedeutet der Pfeil ↑ in der Kurzschreibweise?Warum? Er markiert Fremdschlüssel.
Hilfe: Unterstrichen = Primärschlüssel, eindeutig.
A2
Stimmt's? — SQL-Regeln
AFB I

Fünf Aussagen zum SQL-Umfang der Prüfung. Ordne sie als richtig oder falsch ein.

5 Aussagen nacheinander. Eine falsche Einschätzung reicht — dann startest du die Serie mit „Neue Runde“ neu.
Aussage 1 von 5

Zwei Platzhalter, zwei Filter-Orte: _ und %, WHERE und HAVING.
Frage: Wie viele Zeichen ersetzt _?Warum? Genau eins.
Hilfe: WHERE vor dem Gruppieren, HAVING danach.
A3
Wer klettert lange?
AFB II

Eine Kletterhalle speichert Besuch(BNr, Name, Stunden). Gesucht sind die Namen aller Personen, die mindestens einmal länger als 3 Stunden geklettert sind, jede Person einmal.

Tabelle Besuch
BNrNameStunden
1Ida4
2Jonas2
3Ida5
4Karl3
5Lea6
6Jonas2
7Mo4

Ordne jede Abfrage mit der Ampel ein: Rot, wenn das Ergebnis falsch ist, Gelb, wenn die Namen stimmen, die Ausgabe aber doppelte Namen oder zusätzliche Spalten enthält, Grün, wenn sie genau das Gesuchte liefert.

Gib jeder Situation eine Ampelfarbe: Klicke auf das passende Licht und prüfe dann. Mit der Tastatur: Tab zur Ampel, ↑/↓ oder 1–3 wählt die Farbe.
  • Rot: Falsches Ergebnis
  • Gelb: Richtig, aber unsauber
  • Grün: Genau das Gesuchte
  1. SELECT Name FROM Besuch WHERE Stunden > 3;

  2. SELECT DISTINCT Name FROM Besuch WHERE Stunden > 3;

  3. SELECT Name FROM Besuch WHERE Stunden >= 3;

  4. SELECT Name FROM Besuch GROUP BY Name HAVING SUM(Stunden) > 3;

  5. SELECT Name FROM Besuch GROUP BY Name HAVING MAX(Stunden) > 3;

  6. SELECT Name, MAX(Stunden) FROM Besuch GROUP BY Name HAVING MAX(Stunden) > 3;

Prüfe zuerst, welche Zeilen die Bedingung trifft, dann, wie oft ein Name vorkommt und welche Spalten ausgegeben werden. Bei GROUP BY entscheidet das Aggregat, nicht der einzelne Besuch.
Rechne bei jeder Abfrage nach, welche Namen herauskommen. Streiche zuerst die Besuche, die gar nicht mehr als 3 Stunden dauern.
Achte auf den Unterschied zwischen einer Bedingung an einzelne Besuche (WHERE, MAX) und einer Bedingung an die Summe (SUM). Jonas war zweimal nur 2 Stunden da.