< < Vorheriger BeitragNächster Beitrag > >

SQL III: Join/Self-Join (Josip Matosevic)




/var/www/html/dhlehre/html/wp content/uploads/2021/01/1611742641 Relationales Datenbankmodell

1. Das relationale Datenbankmodell 

1Das relationale Datenbankmodell ist das weitverbreitetste Datenmodell, das in der Datenbankentwicklung verwendet wird. Sie stellt eine mathematische Beschreibung einer Tabelle und ihre Beziehung zu anderen möglichen Tabellen dar, wobei die Operationen auf diese Relationen durch relationale Algebra bestimmt werden. 

2Das relationale Datenbankmodell besteht aus 3 grundlegenden Elementen: 

  • Tabellen
  • Attribute
  • Beziehungen

3Dabei ist das relationale Datenbankmodell eine Ansammlung von miteinander verknüpften Tabellen. Jede Zeile (Tupel) ist ein Datensatz und jede Zeile besteht aus mehreren Spalten, die Eigenschaften (Attribute) beinhalten. Außerdem gibt es Verknüpfungen (Beziehungen), die über Primärschlüssel erstellt werden und dazu dienen, Attribute mit dem gleichen Primärschlüssel abzufragen. 

Basisschema

2. Die relationale Algebra 

4Die relationale Algebra ist das mathematische Konstrukt, auf das SQL aufbaut. Dabei werden mithilfe von Operatoren aus mehreren Relationen neue Relationen gebildet. Damit lassen sich Relationen verknüpfen, umbennen oder filtern.

5Bei der Operation Join wird hierbei zunächst ein kartesisches Produkt gebildet, das daraufhin durch Selektion beschränkt wird. 

3. Arten von Joins

3.1. Cross Join (kartesisches Produkt)

6Bei einem Cross Join wird jeder Datensatz der ersten Tabelle mit jedem Datensatz der zweiten Tabelle verknüpft. Dabei werden alle möglichen Kombinationen aus beiden Tabellen angezeigt. 

7SELECT *

8FROM TabelleA CROSS JOIN TabelleB

3.2. Inner Join 

9Beim Inner Join werden zwei Tabellen miteinander verbunden, wobei die Ergebnisse angezeigt werden, die durch die gleiche Attributwerte miteinander verbunden sind. Mit dem Befehl ON kann der verbindende Attributwert bestimmt werden.

10SELECT *

11FROM TabelleA JOIN TabelleB ON TabelleA.Attribut1 = TabelleB.Attribut2

3.3. Outer Join

12Beim Outer Join enthält die Ergebnistabelle alle Ergebnisse einer Tabelle unabhängig von der anderen Tabelle, deren nicht übereinstimmenden Werte mit NULL angegeben werden. Beim Left Outer Join werden dabei die Ergebnisse der linken Tabelle berücksichtigt, während es beim Right Outer Join die der rechten Tabelle sind.

13SELECT *

14FROM TabelleA LEFT JOIN TabelleB ON TabelleA.Attribut1 = TabelleB.Attribut2

15oder

16SELECT *

17FROM TabelleA RIGHT JOIN TabelleB ON TabelleA.Attribut1 = TabelleB.Attribut2

3.4. Self Join

18Beim Self Join wird eine Tabelle mit sich selbst verknüpft. Dafür gibt es keinen eigenen Befehl, man benutzt hier ebenfalls Join und kennzeichnet die "zwei" Tabellen. Wenn man einen bestimmten Attribute beim Self Join näher betrachten möchte benutzt man dann den Befehl WHERE.

19SELECT *

20FROM TabelleA a JOIN TabelleA b 

21WHERE a.Attribut1 = b.Attribut2

< < Vorheriger BeitragNächster Beitrag > >

Schreibe einen Kommentar