**Dies ist eine alte Version des Dokuments!**
Inhaltsverzeichnis
SQL-Spickzettel
Dieser Spickzettel fasst die wichtigsten SQL-Grundbefehle und deren Reihenfolge zusammen. Er eignet sich ideal zur Prüfungsvorbereitung (AP1 / AP2) und als tägliche Referenz.
Grundstruktur
Die Standard-Struktur einer SQL-Abfrage folgt immer derselben Reihenfolge:
- snippet.sql
SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ... LIMIT ...;
Merke: Wenn du die Struktur immer vollständig aufschreibst, kannst du danach Schritt für Schritt alles ergänzen und Unnötiges streichen.
SchlĂĽsselbefehle im Ăśberblick
| SchlĂĽsselwort | Bedeutung | Beispiel |
|---|---|---|
| SELECT | Welche Spalten angezeigt werden | SELECT name, preis |
| FROM | Aus welcher Tabelle die Daten kommen | FROM produkte |
| WHERE | Filtert Zeilen vor der Gruppierung | WHERE lagerbestand > 100 |
| GROUP BY | Gruppiert gleiche Werte | GROUP BY kategorie |
| HAVING | Filtert nach der Gruppierung | HAVING AVG(preis) > 50 |
| ORDER BY | Sortiert die Ausgabe | ORDER BY preis DESC |
| LIMIT | Begrenzt die Zeilenanzahl | LIMIT 10 |
Beispiel 1 – Einfache Abfrage
**Aufgabe:**Namen und Preise aller Produkte mit Lagerbestand > 100, nach Preis absteigend sortiert, max. 10 Einträge.
sql
SELECT name, preis
FROM produkte
WHERE lagerbestand > 100
ORDER BY preis DESC
LIMIT 10;
Erklärung:
WHEREfiltert nur Zeilen mit Lagerbestand ĂĽber 100.ORDER BY preis DESCsortiert die Ausgabe absteigend.LIMIT 10zeigt nur die ersten 10 Ergebnisse an.
Beispiel 2 – Gruppierte Auswertung
**Aufgabe:**Pro Kategorie den Durchschnittspreis fĂĽr Produkte mit Lagerbestand > 100 berechnen.Nur Kategorien mit einem Durchschnittspreis > 50 anzeigen, absteigend sortiert, max. 10 Ergebnisse.
sql
SELECT kategorie, AVG(preis) AS durchschnittspreis
FROM produkte
WHERE lagerbestand > 100
GROUP BY kategorie
HAVING AVG(preis) > 50
ORDER BY durchschnittspreis DESC
LIMIT 10;
Erklärung:
AVG(preis)berechnet den Durchschnittspreis je Kategorie.GROUP BY kategoriefasst Produkte derselben Kategorie zusammen.HAVINGfiltert nur Gruppen mit Durchschnitt > 50.- Das Alias
durchschnittspreiskann inORDER BYwiederverwendet werden.
Unterschied: WHERE vs. HAVING
| Vergleichspunkt | WHERE | HAVING |
|---|---|---|
| Zeitpunkt | Vor der Gruppierung | Nach der Gruppierung |
| Filtert | Einzelne Datensätze | Gruppenergebnisse |
| Beispiel | WHERE preis > 50 | HAVING AVG(preis) > 50 |
Merksatz:
„WHERE prüft Datensätze, HAVING prüft Gruppen.“
—
Wichtige Aggregatfunktionen
| Funktion | Beschreibung | Beispiel |
|---|---|---|
| COUNT() | Zählt Datensätze |
* „GROUP BY fasst, HAVING prüft, ORDER BY sortiert.“ * „COUNT zählt, AVG mittelt, SUM addiert.“ * „Ohne WHERE = alles.“ * „Immer mit Semikolon abschließen.“
PrĂĽfungstipp
SQL in Ruhe logisch lesen:
- FROM – welche Tabelle(n)?
- WHERE – welche Bedingungen?
- GROUP BY – wie gruppieren?
- HAVING – was bleibt übrig?
- ORDER BY – wie sortieren?
- LIMIT – wie viele Zeilen?
Stand: date Quelle: Eigene Zusammenfassung nach Lernunterlagen / SQL.pdf
```