Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).
Join in SQL - SQL 9
Das Wichtigste aus dem Video
Tipp auf eine Zeit – das Video springt genau dorthin.
Transkriptautomatisch erstellt · 65 Zeilen
- Ja is denn schon wieder Zeit für en neues Video? Wir schauens uns heute mal an was en Join in SQL is.
- Nene, kein Joint. Ein Join!
- Wichtiger Unterschied. Join heißt ja erstmal soviel wie verbinden oder vereinigen.
- Ein Join ist in SQL grob gesagt dazu da zwei oder mehrere Tabellen über ihre Spalten miteinander ,für die Ausgabe, zu verknüpfen.
- Aber ohne viel zu labern schauen wir uns des gleich an! Ein paar werden jetzt wahrscheinlich sagen:
- “Häh? Wieso braucht man da überhaupt en Join um Tabellen zusammen ausgeben zu lassen?
- Gute Frage. Schauen wir uns des glei mal am Beispiel vom Film und Regisseur an!
- Wir ham jetzt wieder unsere beiden Tabellen Film und Regisseur. Wenn wir jetzt beide Tabellen miteinander ausgeben wollen, hätten wir folgende Anweisung.
- Damit würden jetzt also alle Zeilen und Spalten beider Tabellen ausgegeben werden. Die Ergebnistabelle sähe dann so aus.
- Es wird quasi jede Zeile der einen Tabelle mit jeder Zeile der anderen Zeile verknüpft. Das ist jetzt auch schon ein Join.
- Tja, des is jetzt aber mal gar nich sinnvoll. Sinnvoll wäre ja eigentlich nur die Filme mit dem jeweiligen Regisseur verknüpfen,der
- dafür verantwortlich is. Und genau dafür gibt jetzt auch noch weitere Joinarten.
- Mit denen können wir dann schauen ob bestimmte Spalten den gleichen Wert enthalten. Bei uns also zum Beispiel ob in Regisseur und in Regisseur Id die gleichen Werte drinstehen.
- Wie das jetzt funktioniert und was es für verschiedene Join Arten gibt, schauen wir uns jetzt an.
- Bevor wir starten, schauen wir uns ganz schnell was wichtiges an. Beim Verknüpfen kann es jetzt passieren, dass wir Spalten aus verschiedenen Tabellen
- haben, die den gleichen Namen haben. Dann müssen wir vor den jeweiligen Spalten noch mit einem Punkt getrennt den Tabellennamen
- angeben, weil SQL sonst nicht mehr durchblickt. Und ihr selbst wahrscheinlich auch net.
- Also, des im Hinterkopf behalten! Aber jetzt zu den Joins!
- Zu allererst der Cross Join. Der fällt jetzt en bisl aus der Reihe, da er gar nicht auf die Gleichheit von Spaltenwerten
- schaut. Mit dem Cross Join kriegen wir genau sowas hin, wie wir vorhin erzeugt haben.
- Nämlich dass jede Zeile von Tabelle A mit jeder Zeile von Tabelle B zusammengeführt wird.
- Mathematiker kennen des natürlich als kartesisches Produkt. Die Gesamtzeilen der Ausgabe kriegen wir dann, indem wir die Anzahl der Zeilen von der einen
- Tabelle mit der Anzahl der Zeilen der anderen Tabelle multiplizieren. Für nen Cross Join schreiben wir in SQL unsere normale Abfrage.
- Hinter From geben wir jetzt Tabelle1 an. Dahinter kommt dann ein cross join und der Name von Tabelle2.
- Wenn wir hinter from jetzt also unsere Tabellen schreiben, ist das einfach ein Cross Join nur ohne die Join Anweisung.
- Der Cross Join is also net wirklich so sinnvoll. Da schauen wir lieber gleich weiter!
- Der bekannteste Join ist wahrscheinlich der Inner Join. Beim Inner Join werden jetzt nur die Zeilen ausgegeben, bei denen die Werte von bestimmten
- Spalten aus den Tabellen übereinstimmen. Wenn die zu überprüfenden Spalten jetzt aber einen Wert nicht gemeinsam haben, wird
- die Zeile einfach verworfen. In SQL können wir den Inner Join auf zwei Arten formulieren.
- Am Besten nimmt man einfach die Inner Join Anweisung. Dabei können wir anstatt inner join auch einfach join schreiben, da das in SQL automatisch
- als inner join funtioniert. In die Select Zeile schreiben wir erstmal auf was wir wollen.
- In From schreiben wir erstmal die Tabelle1. Dahinter kommt jetzt ein Join und der Name der anderen Tabelle.
- Danach kommt jetzt noch ein on. Da geben wir jetzt an, für welche Spalten die Werte überprüft werden sollen.
- Somit wird jetzt für alle Zeilen überprüft, ob diese beiden Spalten den gleichen Wert enthalten.
- In neueren SQL Datenbanken kann man anstatt dem on ein using schreiben, aber nur wenn die Spalten den gleichen Namen haben.
- Schauen wir uns des mal mit Film und Regisseur an. Hier macht es jetzt natürlich Sinn, den Fremdschlüssel Regisseur mit dem Primärschlüssel RegisseurId
- aus Tabelle Regisseur miteinander zu vergleichen. Als erstes schreiben wir also unsere Tabelle Film hinter From, gejoint mit der Tabelle
- Regisseur. Hinter on kommt jetzt unser Fremdschlüssel Regisseur aus Tabelle Film gleich unserem
- Primärschlüssel RegisseurId aus Tabelle Regisseur. Somit werden jetzt nur die Zeilen ausgegeben bei denen der Wert gleich ist.
- Unsere Tabelle ohne Join sah ja so aus. Durch den InnerJoin wurde jetzt diese Tabelle ausgegeben.
- Wesentlicher sinnvoller oder? Wer des Join jetzt noch nicht so mag, kann Inner Join auch ohne die Anweisung formulieren.
- Dafür schreib man in From dann einfach beide Tabellen rein. In Where schreibt man jetzt einfach wieder,, welche Spalten miteinander verglichen werden
- sollen. Somit kriegt man dann die gleiche Ausgabe.
- Die anderen Joins kann man natürlich auch ohne die jeweiligen Join Anweisungen erreichen, aber da das teilweise zu kompliziert ist, ham wir des jetzt nur beim Inner Join gemacht!
- So dann gehts zum Natural Join. Bei dem muss man keine Spalten angeben, die verglichen werden sollen.
- Natural Join vergleicht dabei automatisch Spalten die den gleichen Namen haben. Außerdem wird die zweite Spalte dann gelöscht, da sie ja den gleichen Namen trägt und in
- der Ergebnistabelle die gleichen Werte wie die Spalte aus der 1. Tabelle hat. In SQL schreibt man dabei einfach ein natural join zwischen die Tabellen die verglichen
- werden sollen. Ein Natural Join kann also gleichzeitig alle Spalten miteinander vergleichen die den gleichen
- Namen haben. Wenn jetzt nur zwei Spalten den gleichen Namen haben, liefert er das gleiche Ergebnis wie
- ein Inner Join, aber die zwei Spalten werden noch zusammengefasst. Wenn keine Spalten der Tabellen den gleichen Namen haben, liefert Natural Join das gleiche
- Ergebnis wie ein Cross Join. Gehen wir mal wieder von der Tabelle Film und Regisseur aus.
- Unseren Fremdschlüssel Regisseur benennen wir dabei in RegisseurId um. Dann wenden wir den natural join auf die beiden Tabellen an.
- Somit kriegen wir jetzt als Ausgabe ne ähnliche Tabelle wie beim inner join. Allerdings wird jetzt die Spalte RegisseurId aus Tabelle Regisseur gestrichen, da sie den
- gleichen Namen hat wie die Spalte RegisseurId aus der Tabelle Film. Wie wir bei Inner join gesehen haben, stehen da ja auch die gleichen Werte drin.
- So, das waren jetzt die wichtigsten Join Arten,weitere folgen dann im nächsten Video. Viele viele Infos, also fassen wir das mal alles zusammen.
- Ein Cross Join verbindet jede Zeile der einen Tabelle mit jeder Zeile einer anderen Tabelle. Die Gesamtzeilen der Ausgabe kriegen wir, indem wir die Anzahl der Zeilen von der einen
- Tabelle mit der Anzahl der Zeilen der anderen Tabelle multiplizieren. In SQL kann man hierfür eine cross Join Klausel verwenden oder die Tabellen hinter from schreiben.
- Mit einem Inner Join werden nur die Zeilen zurückgegeben, bei denen die Werte der angegebenen Spalten übereinstimmen.
- In SQL schreiben wir dafür ein join oder inner join und dahinter ein on mit Angabe der Spalten.
- Falls die Spalten den gleichen Namen haben, können wir ein using verwenden. Ein Natural Join werden automatisch die Werte für Spalten verglichen, die den gleichen
- Namen haben. Bei gleichen Spalten wird dabei die Spalte aus der zweiten Tabelle gelöscht.
- In SQL schreiben wir dafür ein natural join. Falls genau zwei Spalten den gleichen Namen haben, funktioniert Natural Join wie ein Inner
- Join, aber mit löschen einer Spalte. Falls es keine gleichnamigen Spalten gibt, wird er zum Cross Join.
- So Leude! Dat wars jetzt schon wieder für heute.
- Klickt doch gleich ins nächste Video. Ich bin auf jeden Fall da!
Zum Nachlesen
Join (SQL)Ein SQL-Join (deutsch: Verbund) bildet aus den Datensätzen zweier Tabellen einer relationalen Datenbank eine Ergebnistabelle, deren Datensätze Attribute beider …
Relationale AlgebraIn der Theorie der Datenbanken versteht man unter einer relationalen Algebra oder Relationenalgebra eine Menge von Operationen zur Manipulation von …
Selektivität (Informatik)Selektivität ist ein Maß, das in der Informatik bei Datenbankabfragen auf Datenbanktabellen in relationalen Datenbankensystemen gebraucht wird; sie bestimmt …
Relationale DatenbankEine relationale Datenbank ist eine digitale Datenbank, die zur elektronischen Datenverwaltung in Computersystemen dient und auf einem tabellenbasierten …