Ü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.
Welche Aussagen über Tabellen und SQL stimmen?
SELECT, die Zeilen filtert WHERE, und ORDER BY sortiert nur — es entfernt nichts.Verbinde jeden Teil einer SQL-Abfrage mit seiner Aufgabe.
SELECT = Spalten, FROM = Tabelle, WHERE = Zeilen, ORDER BY = Reihenfolge. DESC heißt absteigend (descending), ASC aufsteigend.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.
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.Welche Zahl liefert diese Abfrage für die 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
SELECT COUNT(*) FROM filme WHERE jahr >= 2018 AND fsk < 12;
AND müssen beide Bedingungen stimmen: 3.In welcher Reihenfolge stehen die Titel im Ergebnis dieser Abfrage? (Tabelle filme wie in A4.)
SELECT titel FROM filme WHERE genre = 'Sci-Fi' OR genre = 'Doku' ORDER BY minuten DESC;
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.Eine Wetter-AG speichert Messwerte in der Tabelle wetter (temp in °C, regen_mm in Millimetern).
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
-
SELECT MAX(temp) FROM wetter WHERE ort = 'Hamburg';°C -
SELECT AVG(temp) FROM wetter WHERE ort = 'Berlin';°C -
SELECT COUNT(*) FROM wetter WHERE regen_mm > 0; -
SELECT AVG(regen_mm) FROM wetter WHERE temp > 14;mm
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.In „Programmierparadigmen“ hast du deklarative und imperative Programme unterschieden. Ordne jeden Ausschnitt zu.
Gesucht sind Titel und Jahr aller Animationsfilme ab 2016, alphabetisch sortiert. Drei Zeilen der Abfrage sind fehlerhaft.
Welche Abfragen liefern für die Tabelle filme (A4) genau die beiden Titel Robo & Rosa und Kometenkinder?
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.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?
SELECT * FROM buecher WHERE genre = 'Krimi' AND seiten > 400;
