Dies ist eine alte Version des Dokuments!
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.