SQL lernen für Anfänger: der entspannte Einstieg mit SELECT, WHERE und JOIN
Wie du SQL von null auf verstehst, ohne dich durch trockene Doku zu quälen. Die wichtigsten Befehle erklärt, mit Beispielen und den Fehlern, die am Anfang jeder macht.
Die meisten Leute, die SQL lernen wollen, geben in den ersten zwei Wochen auf. Nicht weil SQL schwer wäre, sondern weil die üblichen Einstiege so trocken sind, dass man vergisst, warum man überhaupt angefangen hat. Dabei ist SQL eine der dankbarsten Sprachen überhaupt: Du schreibst eine Frage, die Datenbank antwortet, fertig. Kein Kompilieren, kein Setup-Wahnsinn, sofortiges Feedback.
Dieser Artikel zeigt dir die Befehle, mit denen du 80 Prozent aller alltäglichen Abfragen hinbekommst. Nicht mehr, nicht weniger. Den Rest lernst du, sobald du ihn brauchst.
Worum es bei SQL eigentlich geht
Eine Datenbank ist im Kern eine Sammlung von Tabellen. Eine Tabelle hat Spalten (zum Beispiel name, preis) und Zeilen (jede Zeile ein Eintrag). SQL ist die Sprache, mit der du diese Tabellen befragst und veränderst.
Stell dir einen kleinen Laden vor mit einer Tabelle products:
| id | name | preis | kategorie |
|---|---|---|---|
| 1 | Apfel | 1 | Obst |
| 2 | Banane | 1 | Obst |
| 3 | Creatine | 30 | Sport |
Alles, was jetzt kommt, sind Fragen an genau diese Tabelle.
SELECT: zeig mir was
Der wichtigste Befehl überhaupt. SELECT holt Daten aus einer Tabelle.
SELECT name FROM products;
Übersetzt: “Gib mir die Spalte name aus der Tabelle products.” Das Ergebnis ist eine Liste aller Namen. Willst du alle Spalten, nimmst du den Stern:
SELECT * FROM products;
Der Stern ist bequem zum Ausprobieren, aber gewöhn dir an, später nur die Spalten zu holen, die du wirklich brauchst. Das ist schneller und du siehst sofort, womit du arbeitest.
WHERE: filtern
Selten willst du alles. Meistens willst du nur das, was eine Bedingung erfüllt. Dafür ist WHERE da.
SELECT name, preis FROM products WHERE kategorie = 'Obst';
Das gibt dir Apfel und Banane, aber nicht das Creatine. Bedingungen kannst du kombinieren:
SELECT name FROM products WHERE preis < 5 AND kategorie = 'Obst';
Wichtig für den Anfang: In SQL vergleicht man mit einem einfachen =, nicht mit == wie in vielen Programmiersprachen. Und Text steht in einfachen Anführungszeichen: 'Obst', nicht "Obst".
ORDER BY und LIMIT: sortieren und begrenzen
Ergebnisse kommen erstmal in keiner garantierten Reihenfolge. Wenn du sie sortieren willst:
SELECT name, preis FROM products ORDER BY preis DESC;
DESC heißt absteigend (teuerstes zuerst), ASC aufsteigend. Und wenn du nur die Top drei willst:
SELECT name, preis FROM products ORDER BY preis DESC LIMIT 3;
Mit ORDER BY und LIMIT baust du dir im Handumdrehen Bestenlisten, die teuersten Produkte, die neuesten Einträge, was auch immer.
Aggregate: zählen und rechnen
Oft willst du nicht einzelne Zeilen, sondern eine Zahl über alle Zeilen. Das machen Aggregatfunktionen.
SELECT COUNT(*) FROM products;
SELECT AVG(preis) FROM products;
SELECT MAX(preis) FROM products WHERE kategorie = 'Obst';
COUNT zählt, AVG bildet den Durchschnitt, MIN und MAX geben Extremwerte. Spannend wird es mit GROUP BY, wenn du pro Gruppe rechnen willst:
SELECT kategorie, AVG(preis) FROM products GROUP BY kategorie;
Das gibt dir den Durchschnittspreis je Kategorie. GROUP BY ist der Punkt, an dem bei vielen das erste Aha-Erlebnis kommt, weil sich plötzlich echte Auswertungen bauen lassen.
JOIN: Tabellen verbinden
In der echten Welt liegen Daten selten in einer einzigen Tabelle. Du hast vielleicht eine Tabelle products und eine Tabelle orders, die per product_id auf die Produkte verweist. Ein JOIN führt beide zusammen.
SELECT orders.id, products.name
FROM orders
JOIN products ON orders.product_id = products.id;
Das ON sagt der Datenbank, wie die Tabellen zusammengehören: Die product_id in orders zeigt auf die id in products. Klingt am Anfang sperrig, ist aber das Werkzeug, das SQL wirklich mächtig macht. Sobald du JOINs verstanden hast, ist der Rest meist nur noch Übung.
Die Fehler, die am Anfang jeder macht
Ein paar Stolpersteine, die du dir sparen kannst:
- Doppelte Anführungszeichen für Text. Es heißt
'Obst', nicht"Obst". Doppelte Anführungszeichen meinen in vielen Datenbanken Spaltennamen, nicht Werte. - Das Semikolon vergessen. Jede Abfrage endet mit
;. Fehlt es, wartet die Datenbank oft einfach weiter auf den Rest. - WHERE und Aggregate verwechseln. Du kannst nicht
WHERE COUNT(*) > 5schreiben. Für Bedingungen auf Aggregate gibt esHAVING. Aber das brauchst du erst später. - Alles auf einmal lernen wollen. Subqueries, Indizes, Transaktionen, das kommt alles noch. Am Anfang reichen die Befehle aus diesem Artikel.
Wie du es wirklich behältst
Lesen reicht nicht. SQL lernt man, indem man tippt. Du musst die Abfrage selbst schreiben, den Fehler selbst sehen, ihn selbst korrigieren. Genau dieser Kreislauf aus Tippen, Antwort, Korrektur ist es, der hängenbleibt.
Genau dafür bauen wir den SQL Item Shop: ein Spiel, in dem du echte SQL-Abfragen schreibst, um durch die Quests zu kommen. Kein Multiple-Choice, keine vorgekaute Doku, sondern die Datenbank, die dir sofort antwortet. Wenn du SQL nicht nur überfliegen, sondern wirklich können willst, ist das der ehrlichste Weg, den wir kennen.