SQL lernen: Die ersten fünf Abfragen mit Beispieldaten
Hinter vielen Anwendungen liegt eine Datenbank, und SQL (Structured Query Language) ist die Sprache, mit der du Daten abfragst. Wer SQL kann, holt sich Auswertungen selbst, statt auf Berichte zu warten. Hier lernst du die ersten fünf Abfragen an zwei kleinen Tabellen. Die Beispiele funktionieren in gängigen Datenbanken wie PostgreSQL.

Die Beispieldaten
Tabelle artikel
| artikel_id | name | preis | lagerbestand |
|---|---|---|---|
| 1 | Schraube M6 | 0.05 | 5000 |
| 2 | Mutter M6 | 0.03 | 8000 |
| 3 | Palette EUR | 12.50 | 40 |
| 4 | Karton gross | 1.20 | 600 |
Tabelle lieferungen
| lieferung_id | artikel_id | menge | datum |
|---|---|---|---|
| 1 | 3 | 10 | 2026-03-02 |
| 2 | 4 | 200 | 2026-03-03 |
| 3 | 3 | 5 | 2026-03-10 |
| 4 | 1 | 1000 | 2026-03-11 |
Abfrage 1: SELECT mit WHERE und ORDER BY
Zeige Artikel mit einem Preis über 1 Franken, teuerster zuerst:
SELECT name, preis
FROM artikel
WHERE preis > 1
ORDER BY preis DESC;
Ergebnis: Palette EUR (12.50), Karton gross (1.20). Die Reihenfolge der Schlüsselwörter ist fest: SELECT, FROM, WHERE, ORDER BY.
Logi empfiehlt: Im SQL-Kurs fragst du Daten ab, verknüpfst Tabellen und wertest sie aus, mit Übungen zu jedem Schritt. Dazu passt der Kurs SQL und Datenanalyse für den Beruf auf e-learning.place. Jetzt gratis registrieren und mit der ersten Lerneinheit starten, ohne Kreditkarte.
Abfrage 2: Zählen und Summieren
Wie viele Artikel gibt es, und wie hoch ist der gesamte Lagerbestand?
SELECT COUNT(*) AS anzahl, SUM(lagerbestand) AS gesamt
FROM artikel;
Ergebnis: anzahl = 4, gesamt = 13640 (5000 + 8000 + 40 + 600). Mit AS gibst du den Spalten lesbare Namen.
Abfrage 3: JOIN verbindet Tabellen
Die Tabelle lieferungen enthält nur die artikel_id. Den Namen holst du mit einem JOIN:
SELECT a.name, l.menge, l.datum
FROM lieferungen l
JOIN artikel a ON a.artikel_id = l.artikel_id;
Du erhältst vier Zeilen, jede Lieferung mit dem Artikelnamen. Die Kürzel a und l sind Aliase und machen die Abfrage kürzer. Der Teil nach ON legt fest, welche Spalten zusammenpassen.
Abfrage 4: GROUP BY und HAVING
Wie viel wurde pro Artikel insgesamt geliefert?
SELECT a.name, SUM(l.menge) AS gesamt
FROM lieferungen l
JOIN artikel a ON a.artikel_id = l.artikel_id
GROUP BY a.name
ORDER BY gesamt DESC;
Ergebnis: Schraube M6 (1000), Karton gross (200), Palette EUR (15). Palette EUR erscheint einmal mit 10 + 5 = 15.
Willst du nur Artikel mit mehr als 100 gelieferten Stück, nutzt du HAVING (WHERE kann keine Summen filtern):
GROUP BY a.name
HAVING SUM(l.menge) > 100
Abfrage 5: LEFT JOIN findet fehlende Verbindungen
Welche Artikel wurden nie geliefert?
SELECT a.name
FROM artikel a
LEFT JOIN lieferungen l ON l.artikel_id = a.artikel_id
WHERE l.lieferung_id IS NULL;
Ergebnis: Mutter M6. Ein LEFT JOIN behält alle Zeilen der linken Tabelle, auch ohne Treffer rechts. Dort sind die Werte NULL, und das nutzt du zum Filtern. Beachte: Auf NULL prüfst du mit IS NULL, nicht mit = NULL.
Die logische Reihenfolge
Die Datenbank arbeitet die Teile in einer anderen Reihenfolge ab, als du sie schreibst: FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY. Das erklärt, warum ein Alias aus SELECT in WHERE noch nicht verfügbar ist.
Typische Anfängerfehler
- Spalte fehlt in GROUP BY: Jede Spalte in SELECT muss entweder in GROUP BY stehen oder in einer Funktion wie SUM.
- Text ohne Anführungszeichen: Texte schreibst du in einfachen Anführungszeichen, zum Beispiel WHERE name = 'Mutter M6'.
- JOIN ohne Bedingung: Ohne ON entsteht ein Kreuzprodukt mit sehr vielen Zeilen.
- NULL vergleichen: Nutze IS NULL, nicht = NULL.
Übung: Schreibe die Abfrage
Aufgabe: Zeige alle Lieferungen im März, bei denen die Menge grösser als 8 ist, mit dem Namen des Artikels. Lösung: SELECT a.name, l.menge FROM lieferungen l JOIN artikel a ON a.artikel_id = l.artikel_id WHERE l.menge > 8 AND l.datum BETWEEN '2026-03-01' AND '2026-03-31'; Ergebnis: Palette EUR (10), Karton gross (200), Schraube M6 (1000).
Häufige Fragen
Brauche ich eine Datenbank-Installation zum Üben?
Nein. Es gibt Online-Werkzeuge im Browser, in denen du Tabellen anlegen und abfragen kannst. Für einen tieferen Einstieg lohnt sich eine lokale Installation.
Was ist der Unterschied zwischen SQL und Excel?
Excel eignet sich für kleinere Tabellen, SQL für grosse, verknüpfte Datenmengen in Datenbanken. Viele Auswertungen kannst du in beiden Werkzeugen lösen.
Wo finde ich die offizielle Dokumentation?
Die Dokumentation von PostgreSQL ist gut verständlich und frei verfügbar.
Quellen und weiterführende Links
Weiterlernen auf e-learning.place
Logi begleitet dich durch die Kurse der Plattform: mit Praxisfällen, Übungen, Lernkarten und Quiz. So wird aus diesem Artikel eine Lernroutine.
- Passender Kurs: SQL und Datenanalyse für den Beruf: Daten abfragen, verknüpfen, auswerten und schützen.
- Weiterer Kurs: SQL für Fortgeschrittene mit PostgreSQL: Analysieren, Daten modellieren und Abfragen beschleunigen.
- Gratis starten: Alle veröffentlichten Selbstlernkurse lassen sich mit einem Gratiskonto nutzen, mit Werbepausen und ohne Kreditkarte. Kostenlos registrieren.
- Lernpfade: Lernpfade ordnen mehrere Kurse zu einem Ziel. Alle Lernpfade ansehen oder den gesamten Kurskatalog durchsuchen.
- Premium: werbefrei lernen, mit persönlichem Lernplan, Vorlesen und KI-Lernhilfe. Premium ansehen.