SQL üben: SELECT, WHERE und JOIN
Die Chefin vom Pizzadienst fragt: Wer wohnt in Köln? Wer aus Köln hat für mehr als 20 € bestellt? Und wer hat noch nie bestellt? Hier schreibst du die SQL-Abfragen selbst. Die Seite führt sie auf einer kleinen Datenbank aus, zeigt dir das Ergebnis und sagt dir sofort, ob es stimmt. In Teil 2 der IHK-Abschlussprüfung der IT-Berufe kommen SQL-Abfragen dran. Du lernst die typischen Fallen kennen: Text ohne Anführungszeichen, = NULL statt IS NULL, ein JOIN ohne Bedingung (Kreuzprodukt), AND und OR ohne Klammern, INNER JOIN statt LEFT JOIN. Merkst du, dass dein Ergebnis zu einem dieser Fehler passt, sagt dir die Seite, welcher es ist.
Übungsdatenbank mit erfundenen Daten. Fünf Kunden, sechs Bestellungen, zwei Tabellen. Die Seite versteht SELECT, FROM, JOIN … ON, WHERE und ORDER BY und verhält sich wie PostgreSQL oder SQL Server: Ein JOIN ohne ON ist ein Fehler, und eine Zahl lässt sich nicht mit Text vergleichen. Ohne ORDER BY ist die Reihenfolge der Zeilen nicht festgelegt.
Zuerst das Lernvideo
Video ansehenDas Beispiel aus dem Video
Das sind die beiden Tabellen des Pizzadienstes. KundeNr ist in der Tabelle Kunde der Primärschlüssel: jede Nummer nur einmal, nie leer. In der Tabelle Bestellung ist KundeNr der Fremdschlüssel: Sie zeigt auf den Kunden, der bestellt hat. Alle Namen sind erfunden.
1. Abfragen schreiben: Zufallsaufgaben mit Sofort-Korrektur
Schreibe die Abfrage in das Feld und klicke auf „Prüfen“. Die Seite führt sie aus, zeigt dir das Ergebnis und vergleicht es mit dem erwarteten Ergebnis. Es zählt das Ergebnis, nicht der genaue Wortlaut: Mehrere Abfragen können richtig sein. Passt dein Ergebnis zu einem typischen Fehler, sagt dir die Seite, zu welchem. Groß- und Kleinschreibung der Schlüsselwörter ist egal. Texte stehen in einfachen Anführungszeichen. Die Aufgaben wechseln Namen, Orte, Beträge und den Kunden, der nie bestellt hat.
Eine mögliche Lösung
Erwartetes Ergebnis:
So arbeitet die Datenbank
Diese Aufgabe teilen: Die Adresse dieser Seite endet auf .
2. Spielwiese: eigene Abfragen auf den Videodaten
Probiere frei aus, was passiert. Die Abfrage läuft auf den beiden Tabellen oben (Pizzadienst aus dem Video). Du siehst das Ergebnis und darunter, wie die Datenbank gearbeitet hat: erst FROM mit JOIN, dann WHERE, dann SELECT. Mit den Knöpfen laden die Abfragen aus dem Video, auch die mit den Fallen.
So arbeitet die Datenbank
3. Wissens-Check
Acht kurze Fragen. Ein Klick auf eine Antwort zeigt sofort, ob sie stimmt.
Mit Stift und Papier üben
Vier A4-Seiten: Merkzettel mit den sechs Regeln und den Tabellen des Videos, Abfragen schreiben, Ergebnis vorhersagen, Fehler finden, Richtig oder falsch und alle Lösungen am Ende.
Verwendet feste Beispieldaten, unabhängig von deinen Eingaben oben.
Übungsblatt als PDF öffnenZum Ausdrucken. Für eine Übung ohne Lösungen die letzte Seite weglassen.
Ideal als Vorlage für Nachhilfeunterricht oder zum Selbstlernen
Dein Merkzettel
- SELECT wählt die Spalten, FROM nennt die Tabelle, WHERE filtert die Zeilen. Nenne nur die gefragten Spalten:
SELECT *holt alle. - Text steht in einfachen Anführungszeichen (
'Köln'), Zahlen nicht. Ohne Anführungszeichen hält die Datenbank Köln für den Namen einer Spalte und meldet einen Fehler. - Beim JOIN legt ON fest, was zusammengehört: Primärschlüssel gleich Fremdschlüssel, zum Beispiel
ON k.KundeNr = b.KundeNr. Steht ein Spaltenname in beiden Tabellen, schreibst duk.oderb.davor. Der INNER JOIN zeigt nur passende Paare, der LEFT JOIN behält alle Zeilen der linken Tabelle und füllt fehlende Partner mit NULL. - Komma oder CROSS JOIN ohne Bedingung liefern jede Kombination (Kreuzprodukt): 5 Kunden mal 6 Bestellungen sind 30 Zeilen. PostgreSQL und SQL Server lehnen ein JOIN ohne ON als Syntaxfehler ab.
- AND bindet stärker als OR, ähnlich wie Punkt vor Strich. Setze Klammern:
(A OR B) AND C. - Fehlende Werte prüfst du mit IS NULL oder IS NOT NULL, nie mit
= NULL. NULL heißt fehlend oder unbekannt, nicht null Euro. Ein Vergleich mit NULL ergibt „unbekannt“, und WHERE lässt nur Zeilen durch, bei denen die Bedingung wahr ist.
Reihenfolge der Verarbeitung: erst FROM mit JOIN, dann WHERE, dann SELECT, zuletzt ORDER BY. Ohne ORDER BY ist die Reihenfolge der Ergebniszeilen nicht festgelegt.
Wer hat nie bestellt? LEFT JOIN … WHERE b.BestellNr IS NULL: Der LEFT JOIN holt alle Kunden zurück, die Bestellnummer ist nur bei fehlender Bestellung NULL.
Persönliche Unterstützung finden
Nachhilfe für Informatik suchen
Nachhilfe für Datenbanken suchen
Nachhilfe für SQL suchen
Ideal als Vorlage für Nachhilfeunterricht oder zum Selbstlernen