MINT lernen

SQL: Daten abfragen

Zehn interaktive Übungen zu SQL-Abfragen — von AFB I bis AFB III.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Zehn interaktive Übungen zu SQL-Abfragen mit SELECT, WHERE, ORDER BY und Aggregatfunktionen — von AFB I bis AFB III. Jede Übung gibt dir sofort Rückmeldung.

A1
Grundbegriffe
AFB I

Welche Aussagen über Tabellen und SQL stimmen?

Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
SQL ist deklarativ: Du sagst, was du willst, nicht wie gesucht wird. Die Spalten wählt SELECT, die Zeilen filtert WHERE, und ORDER BY sortiert nur — es entfernt nichts.
A2
Wer macht was in der Abfrage?
AFB I

Verbinde jeden Teil einer SQL-Abfrage mit seiner Aufgabe.

A3
Abfrage zusammenbauen
AFB I

Das Kino des Schulfilmclubs nutzt die Tabelle filme. Gesucht sind die Titel aller Krimis, der kürzeste Film zuerst. Ergänze die Abfrage — ein Baustein bleibt übrig.

Wort anklicken, dann Lücke anklicken (oder umgekehrt) — mit Tab und Enter geht es genauso. Ein Klick auf eine gefüllte Lücke legt das Wort zurück.

titel filme genre = ORDER BY minuten ;

DESC bleibt übrig: „kürzester zuerst“ heißt aufsteigend nach Minuten, also ASC. Der Text 'Krimi' steht in einfachen Anführungszeichen.
A4
Wie viele Filme?
AFB II

Welche Zahl liefert diese Abfrage für die Tabelle filme?

Tabelle filme
id | titel              | genre     | jahr | minuten | fsk
---+--------------------+-----------+------+---------+----
 1 | Sternenstaub       | Sci-Fi    | 2019 |     124 |  12
 2 | Das Bienenhaus     | Doku      | 2021 |      88 |   0
 3 | Nachtzug nach Riga | Krimi     | 2015 |     105 |  16
 4 | Robo & Rosa        | Animation | 2022 |      92 |   0
 5 | Die letzte Welle   | Sci-Fi    | 2023 |     131 |  12
 6 | Tatort Turnhalle   | Krimi     | 2020 |      97 |  12
 7 | Gipfelsturm        | Doku      | 2018 |      76 |   6
 8 | Kometenkinder      | Animation | 2016 |     101 |   6
SQL
SELECT COUNT(*) FROM filme WHERE jahr >= 2018 AND fsk < 12;
Rechne selbst und trage das Ergebnis ein — Enter prüft direkt.
Ab 2018 erschienen sechs Filme (2019, 2021, 2022, 2023, 2020, 2018). Davon haben nur Das Bienenhaus (FSK 0), Robo & Rosa (FSK 0) und Gipfelsturm (FSK 6) eine FSK unter 12. Bei AND müssen beide Bedingungen stimmen: 3.
A5
Die Ergebnistabelle
AFB II

In welcher Reihenfolge stehen die Titel im Ergebnis dieser Abfrage? (Tabelle filme wie in A4.)

SQL
SELECT titel FROM filme
WHERE genre = 'Sci-Fi' OR genre = 'Doku'
ORDER BY minuten DESC;
Ziehe die Karten in die richtige Reihenfolge — mit der Tastatur: ↑/↓ verschiebt, Shift+↑/↓ wechselt nur den Fokus.
1Das Bienenhaus
2Die letzte Welle
3Gipfelsturm
4Sternenstaub
OR: Es reicht, wenn eine Bedingung stimmt — also alle Sci-Fi- und alle Doku-Filme. Absteigend nach Minuten: 131, 124, 88, 76. Die Spalte minuten steht nicht im Ergebnis, trotzdem darf man nach ihr sortieren.
A6
Rechenkette: Wetterdaten
AFB II

Eine Wetter-AG speichert Messwerte in der Tabelle wetter (temp in °C, regen_mm in Millimetern).

Tabelle wetter
tag | ort     | temp | regen_mm
----+---------+------+---------
Mo  | Hamburg |   14 |        3
Mo  | Berlin  |   17 |        0
Di  | Hamburg |   12 |        8
Di  | Berlin  |   19 |        0
Mi  | Hamburg |   15 |        5
Mi  | Berlin  |   21 |        2
Rechne die Kette Schritt für Schritt: Erst wenn ein Schritt stimmt, wird der nächste freigeschaltet. Enter prüft.
  1. SELECT MAX(temp) FROM wetter WHERE ort = 'Hamburg'; °C
  2. SELECT AVG(temp) FROM wetter WHERE ort = 'Berlin'; °C
  3. SELECT COUNT(*) FROM wetter WHERE regen_mm > 0;
  4. SELECT AVG(regen_mm) FROM wetter WHERE temp > 14; mm
Erst filtert WHERE die Zeilen, dann rechnet die Funktion nur mit diesen. Im letzten Schritt bleiben vier Zeilen mit temp > 14 (17, 19, 15, 21) mit 0 + 0 + 5 + 2 = 7 mm Regen, also 7 : 4 = 1,75 mm. Achtung: 14 °C (Mo, Hamburg) zählt nicht, weil > kein Gleichheitszeichen enthält.
A7
Mix: Was oder wie?
AFB II

In „Programmierparadigmen“ hast du deklarative und imperative Programme unterschieden. Ordne jeden Ausschnitt zu.

Ziehe jede Karte in den passenden Korb — oder wähle sie mit Enter aus und drücke dann die Ziffer des Korbs (0 legt sie zurück).
1deklarativ (WAS)
2imperativ (WIE)
SQL, HTML und CSS beschreiben das gewünschte Ergebnis — wie es erreicht wird, entscheidet die Datenbank bzw. der Browser. Schleifen und Zuweisungen in Java, Python oder PHP geben dagegen Schritt für Schritt vor, wie gerechnet wird.
A8
Fehlersuche: Animationsfilme
AFB III

Gesucht sind Titel und Jahr aller Animationsfilme ab 2016, alphabetisch sortiert. Drei Zeilen der Abfrage sind fehlerhaft.

Klicke genau die fehlerhaften Zeilen an — die richtigen musst du stehen lassen.
Mit den Korrekturen liefert die Abfrage Kometenkinder (2016) und Robo & Rosa (2022). Der häufigste Fehler ist der Text ohne Anführungszeichen — die Fehlermeldung lautet dann meist „no such column“, weil SQL das Wort für einen Spaltennamen hält.
A9
Viele Wege zum gleichen Ergebnis
AFB III

Welche Abfragen liefern für die Tabelle filme (A4) genau die beiden Titel Robo & Rosa und Kometenkinder?

Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
Trick: genre = 'Animation' AND genre = 'Doku' kann nie wahr sein — ein Film hat nur ein Genre, das Ergebnis ist leer. fsk = 0 liefert zusätzlich Das Bienenhaus, und zwischen 90 und 105 Minuten liegt auch Tatort Turnhalle (97). Dass drei verschiedene Abfragen hier dasselbe liefern, liegt nur an diesen Daten.
A10
Wie viele Zeilen kommen zurück?
AFB III

Die Tabelle buecher einer Stadtbibliothek hat 480 Datensätze. 35 % davon haben das Genre Krimi, und von diesen Krimis haben 25 % mehr als 400 Seiten. Wie viele Zeilen liefert die folgende Abfrage?

SQL
SELECT * FROM buecher WHERE genre = 'Krimi' AND seiten > 400;
Schiebe den Regler auf deine Antwort — Pfeiltasten bewegen ihn feiner. Nach dem Prüfen siehst du den Trefferbereich.
0 Zeilen200 Zeilen
Krimis: 35 % von 480 = 168. Davon mehr als 400 Seiten: 25 % von 168 = 42. AND verkleinert die Ergebnismenge Schritt für Schritt; mit OR wären es mindestens 168 Zeilen.