SQL üben: SELECT, JOIN und GROUP BY für die IHK-Prüfung
SQL-Abfragen schreiben gehört zu den häufigsten Aufgaben in der Fachinformatiker-Prüfung, vor allem für Anwendungsentwickler. Hier lernst du das Grundgerüst, JOINs und Gruppierungen mit typischen Prüfungsbeispielen.
Das Grundgerüst jeder Abfrage
SELECT spalten FROM tabelle WHERE bedingung ORDER BY spalte;
SELECT wählt die Spalten, FROM die Tabelle, WHERE filtert Zeilen vor der Ausgabe, ORDER BY sortiert (Standard aufsteigend, DESC für absteigend).
🗂️ Stell es dir wie eine Bestellung beim Bibliothekar vor: SELECT sagt was du sehen willst (welche Angaben), FROM sagt aus welchem Regal (welche Tabelle), WHERE ist deine Bedingung („nur Bücher nach 2020"), und ORDER BY ist die Sortierung („alphabetisch bitte"). Genau in dieser Reihenfolge liest auch die Datenbank die Abfrage.
JOIN: zwei Tabellen verbinden
In der Prüfung fast immer dabei: Daten aus zwei Tabellen zusammenführen. Gegeben seien kunde(kunden_nr, name, ort) und auftrag(auftrags_nr, kunden_nr, summe):
SELECT k.name, a.summe FROM kunde k INNER JOIN auftrag a ON k.kunden_nr = a.kunden_nr;
Der INNER JOIN liefert nur Kunden, die mindestens einen Auftrag haben. Ein LEFT JOIN liefert zusätzlich alle Kunden ohne Auftrag (mit NULL in den Auftragsspalten), ein beliebter Prüfungsunterschied.
GROUP BY und HAVING
GROUP BY fasst Zeilen zu Gruppen zusammen, Aggregatfunktionen wie COUNT(), SUM(), AVG(), MIN() und MAX() rechnen pro Gruppe. HAVING filtert nach der Gruppierung, während WHERE vor der Gruppierung filtert.
SELECT ort, COUNT(*) AS anzahl FROM kunde GROUP BY ort HAVING COUNT(*) >= 5;
Liefert alle Orte, in denen mindestens 5 Kunden wohnen. Merke: WHERE filtert Zeilen, HAVING filtert Gruppen.
💡 Prüfungstipp zur Schreib-Reihenfolge: SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY. Diese Reihenfolge ist fest. Wer sie einhält, macht schon die halbe Aufgabe richtig. Faustregel: WHERE kommt vor der Gruppierung, HAVING danach, und nur HAVING darf Aggregatfunktionen wie COUNT() enthalten.
⚠️ Häufige Fehler in der Prüfung:
- COUNT() in der WHERE-Klausel benutzen. Das ist ungültig, Aggregate gehören in HAVING.
- Das Semikolon am Ende der Abfrage vergessen.
- Beim GROUP BY Spalten im SELECT vergessen, die nicht in einer Aggregatfunktion stehen. Die müssen mit gruppiert werden.
- INNER JOIN und LEFT JOIN verwechseln: INNER lässt Zeilen ohne Partner weg, LEFT behält sie (mit NULL).
Jetzt selbst testen
Beantworte die Fragen und bekomme sofort Feedback, so viele Versuche du willst.
Welche Klausel filtert Gruppen nach einer Aggregatfunktion?
Was liefert ein LEFT JOIN von kunde nach auftrag zusätzlich zum INNER JOIN?
Welche Abfrage zählt die Kunden pro Ort?
Wie sortierst du das Ergebnis absteigend nach der Spalte summe?
Welche Aggregatfunktion berechnet den Durchschnitt einer Spalte?
Häufige Fragen
Was ist der Unterschied zwischen WHERE und HAVING?
WHERE filtert einzelne Zeilen, bevor gruppiert wird. HAVING filtert erst nach der Gruppierung und darf deshalb Aggregatfunktionen wie COUNT() oder SUM() enthalten. Beides kann in derselben Abfrage vorkommen.
Was ist der Unterschied zwischen INNER JOIN und LEFT JOIN?
Ein INNER JOIN liefert nur Datensätze, die in beiden Tabellen einen passenden Partner haben. Ein LEFT JOIN liefert zusätzlich alle Datensätze der linken Tabelle ohne Partner. Deren Spalten aus der rechten Tabelle sind dann NULL.
Welche Aggregatfunktionen muss ich für die IHK-Prüfung kennen?
Die fünf Klassiker: COUNT() zählt Zeilen, SUM() summiert, AVG() bildet den Durchschnitt, MIN() und MAX() liefern kleinsten und größten Wert. Sie werden fast immer zusammen mit GROUP BY geprüft.
Kommt SQL in der AP1 oder AP2 dran?
SQL kann in beiden Prüfungsteilen vorkommen. In der AP1 eher Grundlagen wie SELECT und WHERE, in der AP2 (besonders Anwendungsentwicklung) komplexere Abfragen mit JOINs, Gruppierungen und Unterabfragen.
Verwandte Themen
SQL interaktiv trainieren
In der Lernarena schreibst du SQL-Abfragen mit sofortigem Feedback, echten IHK-Prüfungsfragen und einem KI-Tutor, der dir jede Klausel erklärt. Kostenlos starten, direkt üben.