SQL JOINS - Grundlagen eines SQL JOINS
In relationalen Datenbanksystemen werden Informationen aus einem oder mehreren Anwendungssystem(en) systematisch gespeichert. Die Zusammengehörigkeit der Daten ergibt sich aus dem logischen Datenbankdesign, die meist in Form eines Entity-Relationship-Modells dokumentiert ist. Die Struktur der Datenbank leitet sich aus den einzelnen Typen dieses Modells ab.Um Redundanzen beim Speichern zu vermeiden, werden die Informationen auf verschiedene Tabellen verteilt. Zur Erhaltung der logischen Zusammengehörigkeit werden Fremdschlüssel-Beziehungen zwischen den Tabellen aufgebaut.
Muss das Datenbanksystem eine Anfrage verarbeiten, bei der Informationen aus mehreren Tabellen benötigt werden, ist es erforderlich die einzelnen Datensätze der Tabellen wieder zusammenzuführen. Dadurch werden die ursprünglichen Informationen wiederhergestellt. Dies wird in SQL-Datenbanken mit Hilfe von SQL JOINS (Verbünden) umgesetzt. Mit einem SQL Join werden mehrere Tabellen verknüpft, die in einer Beziehung zueinander stehen.
Wie funktioniert ein SQL Join?
Die Verbindung der Tabellen erfolgt mit speziellen Schlüsselwörtern. Neben dem Namen des anzuwendenden Joins, man unterscheidet vier Join-Arten, muss zusätzlich eine ON-Bedingung angegeben werden. Eine Ausnahme gibt es beim CROSS JOIN und beim NATURAL JOIN. In der ON-Bedingung werden die zu vergleichenden Spalten der beiden Tabellen angegeben.
Ein Vergleich erfolgt durch die Operatoren gleich, ungleich, kleiner, größer usw. Dabei können die Namen der Spalten verschieden sein. Es ist jedoch darauf zu achten, dass sie die logische Beziehung zwischen den Datensätzen widerspiegeln. Neben den zusätzlichen Schlüsselwörtern kann auch die WHERE-Klausel verwendet werden, um die Ergebnismenge bezüglich anderer Merkmale einzuschränken.
Welche Arten von SQL Joins gibt es?
Im SQL-Standard wird generell zwischen sechs Join-Typen unterschieden, die sich in Art und Anwendung unterscheiden:
- Cross-Joins
- Inner Joins
- Natural Joins
- Left Joins
- Right Joins
- Full Outer Joins