Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:joins

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
schule:joins [2016-04-20 22:19] – DB verlinkt marco.bakeraschule:joins [2020-04-29 12:29] (aktuell) – Video verlinkt marco.bakera
Zeile 1: Zeile 1:
 +====== SQL-JOIN ======
 +
 +In relationalen [[Datenbanken]] lassen sich zwei oder mehr Tabellen mit einem JOIN verbinden. Die Präsentation mit einfachen Abfragen und Join erklärt das Verfahren. In [[http://www.schulserver.hessen.de/darmstadt/lichtenberg/SQLTutorial/lektion3.html|Lektion 3: Mit dem Join Tabellen verknüpfen]] ([[https://www.imoodle.de/sqltutorial/index.html|Mirror]]) wird das Verfahren für Tabellen aus einem Busunternehmen erläutert und mit Übungsaufgaben abgerundet.
 +
 +Das Video [[https://web.microsoftstream.com/video/78c22488-83fb-4485-acb9-c2c6bfd7faf6|SQL JOIN]] erläutert das Konzept noch einmal.
 +
 +Wir gehen von den beiden folgenden Tabellen aus (Primärschlüssel sind unterstrichen und Fremdschlüssel mit ↑ markiert) :
 +
 +  * Fahrer(__PersonalNr__, Name, Vorname, StraßeNr, PLZ , Ort, Telefon)
 +  * Fahrt(__FahrtNr__, ↑PersonalNr, Kennzeichen, Datum, Preis, Dauer, Reisestart, Reiseziel)
 +
 +Mit einem JOIN wollen wir nun beide Tabellen über ihre Schlüsselfelder verbinden.
 +
 +  - Wir wählen die erste Tabelle -> Fahrer \\ SELECT * \\ FROM Fahrer ... \\ \\ 
 +  - Wähle nun ein zweite Tabelle, die an die erste Tabelle angefügt werden soll -> Fahrt \\ SELECT ... \\ FROM Fahrer \\ **INNER JOIN Fahrt** ...\\ \\ 
 +  - Wie soll die Tabelle angefügt werde? Welche Fremd- und Primärschlüssel gehören jeweils zusammen? -> Fahrt.PersonalNr verweist auf Fahrer.PersonalNr \\ SELECT ... \\ FROM Fahrer \\ INNER JOIN Fahrt \\ **ON Fahrt.PersonalNr = Fahrer.PersonalNr**
 +
 +Wenn weitere Tabellen angefügt werden sollen, lässt sich der Prozess wiederholen.
 +===== Verschiedene Arten eines JOINs =====
 +
 +
 +Die folgende Grafik zeigt die unterschiedlichen Möglichkeiten, zwei Tabellen mit einem JOIN miteinander zu verbinden.
 +
 +{{:schule:sql_joins-visualisierung.jpg?direct|}}
 +
 +===== Eigene Abfragen =====
 +
 +Um zu prüfen, ob man SQL-Abfragen verstanden hat, hilft es, sich eigene Aufgaben mit einer Lösung zu überlegen.
 +Formuliere nun eigene Fragen an die Nordwind-Datenbank.
 +
 +Erstelle jeweils eine Frage, die
 +  - einen Left- oder Right-Join benötigt
 +  - einen Self-Join benötigt
 +  - mindestens drei unterschiedliche Tabellen abfragt
 +  - eine Aggregatfunktion zur Lösung benötigt.
 +