SQL & Datenbanken — abfragen, verknüpfen, normalisieren
Prüfungsaufgaben kombinieren fast immer zwei Dinge: eine Abfrage richtig zusammensetzen und begründen, warum eine Tabelle so strukturiert ist.
Relationales Modell
Daten liegen in Tabellen (Relationen) aus Zeilen (Datensätzen) und Spalten (Attributen). Beziehungen entstehen über Schlüssel:
| Schlüssel | Bedeutung |
|---|---|
| Primärschlüssel (PK) | identifiziert jeden Datensatz eindeutig, nie NULL |
| Kandidatenschlüssel | weitere Spalten, die eindeutig wären |
| Fremdschlüssel (FK) | verweist auf den PK einer anderen Tabelle — so entsteht die Beziehung |
| Zusammengesetzter Schlüssel | mehrere Spalten zusammen eindeutig (typisch in Zwischentabellen) |
SELECT — der Aufbau
Die Reihenfolge der Klauseln ist prüfungsrelevant, weil sie die Ausführung erklärt:
SELECT Spalten FROM Tabelle WHERE Bedingung GROUP BY Gruppe HAVING Bedingung auf Aggregate ORDER BY Sortierung LIMIT Anzahl
HAVING COUNT(*) > 3).JOINs und ihr Unterschied
| JOIN | Ergebnis |
|---|---|
INNER JOIN | nur Datensätze, die in beiden Tabellen passen |
LEFT JOIN | alle Zeilen der linken Tabelle, fehlende rechts = NULL |
RIGHT JOIN | Umkehrung von LEFT |
FULL OUTER JOIN | alle Zeilen beider Tabellen, fehlende Seiten = NULL |
CROSS JOIN | jede Zeile mit jeder — kartesisches Produkt, selten gewollt |
Typische Prüfungsfrage: „Welche Kunden haben noch keine Bestellung?" — Antwort: LEFT JOIN auf Bestellungen und WHERE bestellung.id IS NULL. Mit INNER JOIN würden genau diese Kunden verschwinden.
Aggregatfunktionen
COUNT(), SUM(), AVG(), MIN(), MAX() fassen Zeilen zusammen. COUNT(*) zählt Zeilen, COUNT(spalte) ignoriert NULL-Werte — ein beliebter Unterschied.
Normalformen
- 1NF: nur atomare Werte — keine Listen in einer Spalte.
- 2NF: 1NF plus: jedes Nichtschlüssel-Attribut ist vom vollen Schlüssel abhängig (wichtig bei zusammengesetzten Schlüsseln).
- 3NF: 2NF plus: keine transitiven Abhängigkeiten — Nichtschlüssel-Attribute hängen nicht voneinander ab.
Ziel: Redundanz vermeiden und Änderungsanomalien verhindern. Beispiel 3NF-Verstoß: In der Tabelle Bestellung zusätzlich Kundenname speichern. Zieht der Kunde um, müsste man alle Bestellungen ändern — deshalb gehört der Name in die Kundentabelle.
Transaktionen: ACID
- Atomicity: alles oder nichts.
- Consistency: Regeln bleiben erfüllt.
- Isolation: parallele Transaktionen stören sich nicht.
- Durability: Nach dem Commit ist der Zustand dauerhaft (auch bei Stromausfall).
Typisches Beispiel: Überweisung — Abbuchung und Gutschrift müssen gemeinsam gelten.
Typische Prüfungsfallen
- INNER statt LEFT bei „auch ohne Zuordnung" — Ergebnis wäre falsch.
- NULL ist nicht 0 und nicht vergleichbar mit
=; dafür gibt esIS NULL. - GROUP BY unvollständig: Alle Nicht-Aggregat-Spalten aus SELECT müssen gruppiert sein.
- DELETE ohne WHERE löscht alles — und ein
DELETEist mit Transaktion rückholbar, einDROP TABLEnicht.
Weiter üben
Das Grundlagenwissen steht hier frei — geübt wird in der Lernplattform: über 1.300 Prüfungsfragen mit ausführlicher Erklärung zu jeder Antwort, Fortschritt im eigenen Konto.
Passende Videos
Externer Inhalt, geöffnet in einem neuen Tab. Keine Einbettung — solange du nicht selbst klickst, werden keine Daten an YouTube übertragen.