Wenn Du unseren Blog regelmäßig verfolgst, hast Du bereits von SQL oder „Structured Query Language“ gehört, einer Programmiersprache zur Verwaltung von Datenbanken. Daher weißt Du bereits, wie wichtig SQL-Joins sind. Wenn Du den Artikel über die Grundlagen dieser Sprache verpasst hast, findest Du ihn hier. In diesem Artikel erfährst Du mehr über SQL-Joins.
Auf den ersten Blick können SQL-Joins kompliziert oder schwer anwendbar erscheinen. DataScientest bietet Dir eine kurze Zusammenfassung der wichtigsten SQL-Joins mit einem einfachen Beispiel, um Dir das Leben zu erleichtern!
Was versteht man unter Joins in SQL ?
Mithilfe von Joins kannst Du Daten aus einer Datenbank mit verbundenen Tabellen abrufen.Damit kann man die Tabellen in einer Datenbank nutzen, sie verknüpfen und effiziente Ergebnisse erzielen.
Es gibt verschiedene Arten von Joins. Hier werden wir uns mit den wichtigsten befassen.
Im Laufe dieses Artikels werden wir zwei Tabellen nutzen:
- Die Tabelle Stadt (franz.: ville) zeigt die Städte, in denen der Kunde (franz.: client) lebt, der id_client entspricht
- Die Tabelle email zeigt die E-Mail der Kunden an
Warum verwendet man SQL Joins ?
Joins werden in SQL verwendet, um Daten aus mehreren Tabellen zu kombinieren und abzurufen. Hier sind einige Gründe, warum Joins in SQL wichtig sind:
Verknüpfung von Daten:
Wenn Daten in verschiedenen Tabellen gespeichert sind, können Joins verwendet werden, um die Beziehungen zwischen den Tabellen herzustellen. Durch die Verknüpfung von Tabellen können Informationen miteinander in Beziehung gesetzt und abgerufen werden, um ein umfassenderes Bild zu erhalten.
Abfrage von verbundenen Daten:
Oft sind Daten in verschiedenen Tabellen miteinander verbunden. Durch Joins können Sie Abfragen erstellen, die Daten aus verschiedenen Tabellen basierend auf gemeinsamen Schlüsselwerten abrufen. Dadurch können Sie komplexe Abfragen erstellen, um spezifische Informationen zu extrahieren.
Effizienz:
Joins ermöglichen es, Daten effizient abzurufen, anstatt separate Abfragen für jede Tabelle auszuführen und die Ergebnisse manuell zu kombinieren. Durch die Verwendung von Joins können Sie in einer einzigen Abfrage mehrere Tabellen abfragen und die Ergebnisse zusammenführen.
Datenintegrität:
Joins helfen, die Datenintegrität sicherzustellen, indem sie sicherstellen, dass die abgerufenen Daten nur die relevanten und korrekten Informationen enthalten. Durch die Verknüpfung von Tabellen basierend auf gemeinsamen Schlüsseln können Sie sicherstellen, dass die Daten konsistent und vollständig sind.
Datenanalyse und Berichterstattung:
Joins sind wichtig für die Datenanalyse und die Erstellung von Berichten, da sie es ermöglichen, Informationen aus verschiedenen Tabellen zu kombinieren und zu analysieren. Durch die Verwendung von Joins können Sie komplexe Abfragen erstellen, um aussagekräftige Einblicke in Ihre Daten zu gewinnen.
Insgesamt ermöglichen Joins in SQL die effektive Nutzung relationaler Datenbanken, indem sie Daten aus verschiedenen Tabellen verknüpfen und abrufen. Sie sind ein grundlegender Bestandteil der Datenmanipulation und -abfrage in SQL und ermöglichen es, umfassende Informationen aus komplexen Datenstrukturen zu extrahieren.
Stadt
1. INNER JOIN
Der INNER JOIN gibt Daten zurück, die bestimmte Verbundbedingungen erfüllen.
Wie das Schema zeigt, werden bei dieser Art von Verknüpfung die Tupel der beiden Tabellen paarweise verknüpft, wenn eine Verbundbedingung erfüllt ist. Diese Bedingung kann von beliebigem Typ sein, solange sie einen Boolean data type zurückgibt. Typischerweise wird diese Bedingung die Gleichheit eines gemeinsamen Attributs sein. Es muss angegeben werden, welche Attribute für den Join verwendet werden sollen. Nachdem man die Tabellen im INNER JOIN gefüllt hat, gibt man das Schlüsselwort ON und dann die gewünschte Gleichheit ein.
Dies ist die Abfrage, bei der die meisten Informationen verloren gehen, da diese Abfrage nur die Zeilen in beiden Tabellen auswählt, in denen Informationen in beiden Tabellen vorhanden sind.
Mit einem INNER JOIN zwischen den beiden Tabellen erhältst Du nur die id_client, die in der Tabelle „email“ und in der Tabelle „ville“ (Stadt) vorhanden sind. Die id_client 4 und 5, die in der Tabelle „email“ und nicht in der Tabelle „ville“ (Stadt) vorhanden sind, werden nicht berücksichtigt. Dasselbe gilt für die id_client 7 und 8, die sich in der Tabelle „ville“ (Stadt) und nicht in der Tabelle „email“ befinden.
2. LEFT JOIN
Der LEFT JOIN ist ein Join zwischen 2 Tabellen, bei dem alle Datensätze aus der linken Tabelle zurückgegeben werden, auch wenn es keine Übereinstimmung mit der rechten Tabelle gibt. Wenn es keine Übereinstimmung gibt, werden die fehlenden Werte durch NULL aufgefüllt. Wie beim INNER JOIN musst Du die Attribute angeben, die für den Join verwendet werden sollen: Nachdem Du die Tabellen mit dem LEFT JOIN ausgefüllt hast, gibst Du das Schlüsselwort ON, dann die gewünschte Gleichheit ein.
Hier machen wir eine LEFT JOIN-Abfrage in Bezug auf die Tabelle „email“, also zeigen wir alle Zeilen an, in denen die id_client in der linken Tabelle, also in der Tabelle „email“, vorhanden ist.
Die Zeilen, die der id_client 7 und 8 entsprechen, sind also nicht in der Abfrage enthalten.
3. RIGHT JOIN
Der RIGHT JOIN ist ein Join zwischen 2 Tabellen, bei dem alle Datensätze aus der rechten Tabelle zurückgegeben werden, auch wenn es keine Übereinstimmung mit der linken Tabelle gibt. Wenn es keine Übereinstimmung gibt, werden die fehlenden Werte durch NULL aufgefüllt.
Wie beim INNER JOIN, oder LEFT JOIN ist es notwendig, die Attribute anzugeben, die für den Join verwendet werden sollen: Nachdem Du die Tabellen mit dem RIGHT JOIN ausgefüllt hast, gibst Du das Schlüsselwort ON, dann die gewünschte Gleichheit ein.
Hier machen wir ein RIGHT JOIN in Bezug auf die Tabelle „ville“ (Stadt), also erhalten wir als Ergebnis alle Zeilen der Tabelle „ville“ (Stadt) mit den entsprechenden Zeilen der Tabelle „e-mail”, wenn es eine Übereinstimmung gibt, weshalb die Zeilen, die der id_client 4 und 5 entsprechen, nicht vorhanden sind.
4. FULL JOIN
Beim FULL JOIN werden alle Datensätze aus zwei Tabellen zurückgegeben, auch wenn es keine Übereinstimmung mit der anderen Tabelle gibt. Wenn es keine Übereinstimmung gibt, werden die fehlenden Werte durch NULL aufgefüllt. Auch dieser Join erfordert das Attribut ON.
Hier spielt es keine Rolle, ob es in einer der beiden Tabellen keine übereinstimmenden Zeilen gibt, denn alle Informationen aus beiden Tabellen sind vorhanden. Dies ist der Join, bei dem möglichst viele Informationen erhalten bleiben.
5. NATURAL JOIN
Beim NATURAL JOIN werden die Datensätze von zwei Tabellen geknüpft, indem die Datensätze aus beiden Tabellen auf „natürliche“ Weise zurückgegeben werden. Es muss in beiden Tabellen mindestens eine Spalte mit demselben Namen vorhanden sein. Sie ermöglicht einen natürlichen Join, indem sie die Zeilen mit Paaren zurückgibt, die in beiden Tabellen übereinstimmen.
Beim NATURAL JOIN gibt man das ON nicht an.
Hier siehst Du, dass es tatsächlich einen Join zwischen den beiden Tabellen mit „id_client“ gibt, da dies die einzige Variable ist, die in beiden Tabellen vorkommt.
Aber was ist denn der Unterschied zwischen dem NATURAL JOIN und dem INNER JOIN?
Beim INNER JOIN wird die Wiederholung gleicher Zeilen vermieden, was beim NATURAL JOIN nicht möglich ist. Der INNER JOIN ergibt eine Tabelle auf der Grundlage der im ON angegebenen Daten, während der NATURAL JOIN eine Tabelle auf der Grundlage einer Spalte mit demselben Namen und Typ in beiden Tabellen ergibt.
Die vier zu beachtenden Arten von Joins sind :
–INNER JOIN, mit dem Informationen zwischen zwei Tabellen abgerufen werden können, wenn die Verbundbedingung im ON in beiden Tabellen erfüllt ist,
–LEFT / RIGHT JOIN, mit dem Informationen zwischen zwei Tabellen abgerufen werden können, wobei alle Informationen aus einer der beiden Tabellen erhalten bleiben,
–FULL JOIN ruft alle Informationen aus beiden Tabellen ohne Informationsverlust ab (kann aber viele NULLs anzeigen),
–NATURAL JOIN ist ein natürlicher Verbund zwischen den beiden Tabellen. Dabei muss man das ON nicht angeben.
Mithilfe von Joins kannst Du mehrere Tabellen auf effiziente Weise miteinander verknüpfen. Es gibt verschiedene Arten und wir haben uns die wichtigsten angesehen.
Wenn Du mehr über SQL-Joins erfahren möchtest, gibt es in unserer Weiterbildung zum/r Data Analyst ein Modul darüber.