schule:joins
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
schule:joins [2015-03-19 06:27] – angelegt marco.bakera | schule: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:// | ||
+ | |||
+ | Das Video [[https:// | ||
+ | |||
+ | Wir gehen von den beiden folgenden Tabellen aus (Primärschlüssel sind unterstrichen und Fremdschlüssel mit ↑ markiert) : | ||
+ | |||
+ | * Fahrer(__PersonalNr__, | ||
+ | * Fahrt(__FahrtNr__, | ||
+ | |||
+ | 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, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== 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. | ||
+ | |||