SQL Lernen mit der Filmdatenbank
In diesem Kurs lernst du Schritt für Schritt, wie du mit SQL Daten aus einer Datenbank abfragen kannst. Unsere Datenbank enthält Informationen über Filme, Serien, Schauspieler und Regisseure.
Was ist SQL?
SQL (Structured Query Language) ist die Sprache, mit der man Datenbanken abfragt. Mit SQL kannst du:
- Daten aus Tabellen abrufen (SELECT)
- Daten filtern und sortieren
- Daten aus mehreren Tabellen kombinieren
- Berechnungen über Daten durchführen
So funktioniert dieser Kurs
Arbeite die Kapitel der Reihe nach durch. Jedes Kapitel enthält:
- Theorie — Erklärungen der SQL-Konzepte
- Beispiele — Klicke auf ein Beispiel, um es im Editor auszuprobieren
- Übungen — Schreibe eigene Abfragen. Tipps und Lösungen helfen dir weiter.
Unsere Datenbank
Die Datenbank besteht aus 9 Tabellen. In der Seitenleiste links findest du das komplette Schema. Hier eine Übersicht der wichtigsten Beziehungen:
Probiere gleich deine erste Abfrage aus:
SELECT — Daten abfragen
Mit dem SELECT-Befehl holst du Daten aus der Datenbank. Es ist der wichtigste und am häufigsten verwendete SQL-Befehl.
Grundaufbau einer Abfrage
Jede SQL-Abfrage hat mindestens zwei Teile:
FROM tabellenname
- SELECT bestimmt, welche Spalten angezeigt werden
- FROM bestimmt, aus welcher Tabelle die Daten kommen
Alle Spalten abfragen mit *
Das Sternchen * bedeutet „alle Spalten“. So bekommst du die komplette Tabelle:
Bestimmte Spalten auswählen
Meistens brauchst du nicht alle Spalten. Gib einfach die gewünschten Spaltennamen an, getrennt durch Kommas:
Übungen 0 / 25
WHERE — Daten filtern
Mit WHERE kannst du bestimmen, welche Zeilen angezeigt werden sollen. Nur Zeilen, die die Bedingung erfüllen, erscheinen im Ergebnis.
Grundaufbau mit WHERE
FROM tabelle
WHERE bedingung
Vergleichsoperatoren
Du kannst Werte vergleichen mit:
=— gleich!=oder<>— ungleich<,>,<=,>=— kleiner, größer, ...
Textsuche mit LIKE
Mit LIKE kannst du nach Textmustern suchen. Das Prozentzeichen % steht für „beliebig viele Zeichen“:
LIKE 'A%'— beginnt mit ALIKE '%man'— endet mit „man“LIKE '%Star%'— enthält „Star“
Bedingungen kombinieren: AND, OR, NOT
Mehrere Bedingungen lassen sich verknüpfen:
BETWEEN und IN
BETWEEN prüft, ob ein Wert in einem Bereich liegt. IN prüft, ob ein Wert in einer Liste enthalten ist:
Übungen 0 / 25
ORDER BY & LIMIT — Sortieren und Begrenzen
Bringe deine Ergebnisse in die richtige Reihenfolge und begrenze die Anzahl der angezeigten Zeilen.
Sortieren mit ORDER BY
Mit ORDER BY sortierst du die Ergebnisse nach einer oder mehreren Spalten:
- ASC — aufsteigend (Standard, kann weggelassen werden)
- DESC — absteigend
ORDER BY spalte ASC|DESC
Ergebnisse begrenzen mit LIMIT
LIMIT begrenzt die Anzahl der zurückgegebenen Zeilen. Besonders nützlich in Kombination mit ORDER BY:
Übungen 0 / 10
Aggregatfunktionen & GROUP BY
Berechne Zusammenfassungen über deine Daten: zähle, summiere und bilde Durchschnitte.
Aggregatfunktionen
Diese Funktionen fassen mehrere Zeilen zu einem einzigen Ergebnis zusammen:
- COUNT(*) — zählt die Anzahl der Zeilen
- AVG(spalte) — berechnet den Durchschnitt
- SUM(spalte) — berechnet die Summe
- MIN(spalte) — findet den kleinsten Wert
- MAX(spalte) — findet den größten Wert
Gruppieren mit GROUP BY
Mit GROUP BY fasst du Zeilen zusammen, die in einer Spalte den gleichen Wert haben. Damit kannst du z.B. zählen, wie viele Filme pro Jahr erschienen sind:
FROM tabelle
GROUP BY spalte
Gruppen filtern mit HAVING
HAVING ist wie WHERE, aber für gruppierte Ergebnisse. Es filtert nach der Gruppierung:
Übungen 0 / 20
JOINs — Tabellen verknüpfen
Die wahre Stärke von SQL: Kombiniere Daten aus mehreren Tabellen zu einem Ergebnis.
Warum JOINs?
In unserer Datenbank sind die Informationen auf mehrere Tabellen verteilt. Ein Film hat z.B. eine RegieID, aber der Name des Regisseurs steht in der Tabelle Regisseur. Um beides zusammen anzuzeigen, brauchen wir einen JOIN.
INNER JOIN
Der INNER JOIN verbindet zwei Tabellen über eine gemeinsame Spalte. Nur Zeilen, die in beiden Tabellen einen passenden Wert haben, erscheinen im Ergebnis:
FROM tabelle1
JOIN tabelle2 ON tabelle1.spalte = tabelle2.spalte
Name), musst du den Tabellennamen voranstellen: Serie.Name, Land.Name.Mehrere JOINs
Du kannst auch mehr als zwei Tabellen verknüpfen, indem du mehrere JOINs hintereinander schreibst:
LEFT JOIN
Ein LEFT JOIN zeigt alle Zeilen der linken Tabelle, auch wenn es keinen passenden Eintrag in der rechten Tabelle gibt. Fehlende Werte werden mit NULL gefüllt:
Übungen 0 / 15
Fortgeschrittene Abfragen
Lerne weitere nützliche SQL-Techniken: Unterabfragen, DISTINCT und Aliase.
DISTINCT — Doppelte entfernen
DISTINCT entfernt doppelte Zeilen aus dem Ergebnis:
Aliase mit AS
Mit AS gibst du Spalten oder Tabellen einen Kurznamen (Alias). Das macht Ergebnisse lesbarer und Abfragen kürzer:
f für Film) machen lange JOINs viel übersichtlicher!Unterabfragen (Subqueries)
Eine Unterabfrage ist eine SELECT-Abfrage innerhalb einer anderen Abfrage. Sie wird in Klammern geschrieben und kann überall stehen, wo ein Wert erwartet wird:
WHERE spalte > (SELECT AVG(spalte) FROM tabelle)