Lektion 2 - Verknüpfte Tabellen

Lektion 3 - Zusammenführen der Datensätze mit SQL

Um Daten aus beiden Tabellen zu erhalten, verwendet man diese SQL-Abfrage:

SELECT * FROM Schueler, Lehrer

Diese Abfrage liefert allerdings jede mögliche Kombination der Datensätze aus der Tabelle „Schueler“ mit denen der Tabelle „Lehrer“.

Es gehören aber nur die zusammen, bei denen das Attribut „KLNr“ der Schüler mit dem Attribut „LNr“ der Lehrer übereinstimmt. Wir schränken daher das Ergebnis ein:

SELECT * FROM Schueler, Lehrer WHERE KLNr = LNr

Diese Abfrage liefert nur noch die Datensätze, die zusammenpassen. Jetzt könnte man einerseits die Spalten des Ergebnisses noch einschränken:

SELECT SVorname, SNachname, LDienstbez, LNachname
FROM Schueler, Lehrer
WHERE KLNr = LNr

Zudem könnte man die Anzahl der zurückgegebenen Datensätze noch einschränken:

SELECT SVorname, SNachname, LDienstbez, LNachname
FROM Schueler, Lehrer
WHERE KLNr = LNr AND SKlasse >= 9

Damit werden nur die Daten der Schüler, die in Klasse 9 oder höher sind, zurückgegeben. Übrigens: Es kann durchaus vorkommen, dass ein Spaltenname in zwei verschiedenen Tabellen vorkommt. Bei einer Abfrage, die diese beiden Tabellen verknüpft, ist dann nicht mehr klar, welche Spalte gemeint ist. In solchen Fällen kann man den Tabellennamen und einen Punkt vor den Spaltennamen setzen, um klarzumachen, welche Spalten gemeint sind:

SELECT Schueler.SVorname, Schueler.SNachname, Lehrer.LNachname
FROM Schueler, Lehrer
WHERE Schueler.KLNr = Lehrer.LNr AND Schueler.SKlasse >= 9

Übungen 1

Importiere die Datenbank lehrer_schuler.sql und vollziehe die Beispiele aus dem Text nach.

Erfinde eigene Beispiele und teste diese.

Übungen 2

Importiere die Datenbank geographie.sql und bearbeite die Aufgaben auf dem Blatt geographie.pdf.