Der Name steht überall
In der Kursliste steht neben jedem Kurs der Name der Lehrkraft. Jonas Keller leitet zwei Kurse, also steht sein Name zweimal da.
Eines Tages tippt jemand „Keler“ mit einem l. Nun gibt es zwei Lehrkräfte, obwohl es nur eine ist.
Wie vermeidest du das?
Am Ende dieser Lektion
Notiz
Ich kann an zwei Tabellen zeigen, welche Spalte der Fremdschlüssel ist und auf welche Zeile sie zeigt.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Primärschlüssel | Die Spalte, die jede Zeile eindeutig macht. | id in lehrkraefte |
| Fremdschlüssel | Eine Spalte mit dem Primärschlüssel einer anderen Tabelle. | lehrkraft_id in kurse |
| Verweis | Der Zeiger von einer Zeile auf eine Zeile einer anderen Tabelle. | |
| Doppelte Daten | Dieselbe Angabe, an mehreren Stellen gespeichert. | |
| Integrität | Die Daten bleiben richtig. Kein Verweis führt ins Leere. | |
| REFERENCES | Das SQL-Wort, das sagt, auf welche Tabelle der Verweis zeigt. |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Starter: Was du schon weißt
Probier es aus
Starter: Was du schon weißt
4 FragenDeine Antworten werden hier bewertet und nicht gespeichert. Mit einem Konto bleiben deine Ergebnisse erhalten.
Kopierte Daten machen Ärger
Wenn du eine Angabe in jede Zeile kopierst, entstehen drei Probleme.
- Tippfehler: „Keller“ und „Keler“ sind zwei Namen.
- Ändern: Du musst jede Zeile einzeln ändern.
- Platz: Derselbe Name liegt hundertmal im Speicher.
Finde den fehlenden Kurs
-- Alle Kurse von Jonas Keller, wenn der Name kopiert wurde.
SELECT name FROM kurse_mit_namen WHERE lehrkraft = 'Jonas Keller';
-- Es fehlt ein Kurs! Sieh dir die ganze Tabelle an.
SELECT * FROM kurse_mit_namen;
Zwei Tabellen statt einer
Die Lösung: Jede Lehrkraft steht einmal in der Tabelle lehrkraefte, mit einer Nummer.
In der Tabelle kurse steht nur noch die Nummer. Die Spalte lehrkraft_id verweist auf die Lehrkraft.
Diese Spalte heißt Fremdschlüssel: Sie enthält den Primärschlüssel einer fremden Tabelle.
Beispiel: die Tabelle kurse
| id | name | lehrkraft_id |
|---|---|---|
| 1 | Informatik | 1 |
| 2 | Musik | 2 |
| 3 | Fussball | 3 |
| 4 | Theater | 2 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Beispiel: die Tabelle lehrkraefte
| id | vorname | nachname |
|---|---|---|
| 1 | Anna | Brandt |
| 2 | Jonas | Keller |
| 3 | Sabine | Vogel |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.