Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

Join in SQL - SQL 9

Informatik - simpleclub6:55 250.841 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 65 Zeilen
Herunterladen
  1. Ja is denn schon wieder Zeit für en neues Video? Wir schauens uns heute mal an was en Join in SQL is.
  2. Nene, kein Joint. Ein Join!
  3. Wichtiger Unterschied. Join heißt ja erstmal soviel wie verbinden oder vereinigen.
  4. Ein Join ist in SQL grob gesagt dazu da zwei oder mehrere Tabellen über ihre Spalten miteinander ,für die Ausgabe, zu verknüpfen.
  5. Aber ohne viel zu labern schauen wir uns des gleich an! Ein paar werden jetzt wahrscheinlich sagen:
  6. “Häh? Wieso braucht man da überhaupt en Join um Tabellen zusammen ausgeben zu lassen?
  7. Gute Frage. Schauen wir uns des glei mal am Beispiel vom Film und Regisseur an!
  8. Wir ham jetzt wieder unsere beiden Tabellen Film und Regisseur. Wenn wir jetzt beide Tabellen miteinander ausgeben wollen, hätten wir folgende Anweisung.
  9. Damit würden jetzt also alle Zeilen und Spalten beider Tabellen ausgegeben werden. Die Ergebnistabelle sähe dann so aus.
  10. Es wird quasi jede Zeile der einen Tabelle mit jeder Zeile der anderen Zeile verknüpft. Das ist jetzt auch schon ein Join.
  11. Tja, des is jetzt aber mal gar nich sinnvoll. Sinnvoll wäre ja eigentlich nur die Filme mit dem jeweiligen Regisseur verknüpfen,der
  12. dafür verantwortlich is. Und genau dafür gibt jetzt auch noch weitere Joinarten.
  13. 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.
  14. Wie das jetzt funktioniert und was es für verschiedene Join Arten gibt, schauen wir uns jetzt an.
  15. Bevor wir starten, schauen wir uns ganz schnell was wichtiges an. Beim Verknüpfen kann es jetzt passieren, dass wir Spalten aus verschiedenen Tabellen
  16. haben, die den gleichen Namen haben. Dann müssen wir vor den jeweiligen Spalten noch mit einem Punkt getrennt den Tabellennamen
  17. angeben, weil SQL sonst nicht mehr durchblickt. Und ihr selbst wahrscheinlich auch net.
  18. Also, des im Hinterkopf behalten! Aber jetzt zu den Joins!
  19. Zu allererst der Cross Join. Der fällt jetzt en bisl aus der Reihe, da er gar nicht auf die Gleichheit von Spaltenwerten
  20. schaut. Mit dem Cross Join kriegen wir genau sowas hin, wie wir vorhin erzeugt haben.
  21. Nämlich dass jede Zeile von Tabelle A mit jeder Zeile von Tabelle B zusammengeführt wird.
  22. Mathematiker kennen des natürlich als kartesisches Produkt. Die Gesamtzeilen der Ausgabe kriegen wir dann, indem wir die Anzahl der Zeilen von der einen
  23. Tabelle mit der Anzahl der Zeilen der anderen Tabelle multiplizieren. Für nen Cross Join schreiben wir in SQL unsere normale Abfrage.
  24. Hinter From geben wir jetzt Tabelle1 an. Dahinter kommt dann ein cross join und der Name von Tabelle2.
  25. Wenn wir hinter from jetzt also unsere Tabellen schreiben, ist das einfach ein Cross Join nur ohne die Join Anweisung.
  26. Der Cross Join is also net wirklich so sinnvoll. Da schauen wir lieber gleich weiter!
  27. Der bekannteste Join ist wahrscheinlich der Inner Join. Beim Inner Join werden jetzt nur die Zeilen ausgegeben, bei denen die Werte von bestimmten
  28. Spalten aus den Tabellen übereinstimmen. Wenn die zu überprüfenden Spalten jetzt aber einen Wert nicht gemeinsam haben, wird
  29. die Zeile einfach verworfen. In SQL können wir den Inner Join auf zwei Arten formulieren.
  30. 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
  31. als inner join funtioniert. In die Select Zeile schreiben wir erstmal auf was wir wollen.
  32. In From schreiben wir erstmal die Tabelle1. Dahinter kommt jetzt ein Join und der Name der anderen Tabelle.
  33. Danach kommt jetzt noch ein on. Da geben wir jetzt an, für welche Spalten die Werte überprüft werden sollen.
  34. Somit wird jetzt für alle Zeilen überprüft, ob diese beiden Spalten den gleichen Wert enthalten.
  35. In neueren SQL Datenbanken kann man anstatt dem on ein using schreiben, aber nur wenn die Spalten den gleichen Namen haben.
  36. 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
  37. aus Tabelle Regisseur miteinander zu vergleichen. Als erstes schreiben wir also unsere Tabelle Film hinter From, gejoint mit der Tabelle
  38. Regisseur. Hinter on kommt jetzt unser Fremdschlüssel Regisseur aus Tabelle Film gleich unserem
  39. Primärschlüssel RegisseurId aus Tabelle Regisseur. Somit werden jetzt nur die Zeilen ausgegeben bei denen der Wert gleich ist.
  40. Unsere Tabelle ohne Join sah ja so aus. Durch den InnerJoin wurde jetzt diese Tabelle ausgegeben.
  41. Wesentlicher sinnvoller oder? Wer des Join jetzt noch nicht so mag, kann Inner Join auch ohne die Anweisung formulieren.
  42. Dafür schreib man in From dann einfach beide Tabellen rein. In Where schreibt man jetzt einfach wieder,, welche Spalten miteinander verglichen werden
  43. sollen. Somit kriegt man dann die gleiche Ausgabe.
  44. 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!
  45. So dann gehts zum Natural Join. Bei dem muss man keine Spalten angeben, die verglichen werden sollen.
  46. 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
  47. 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
  48. werden sollen. Ein Natural Join kann also gleichzeitig alle Spalten miteinander vergleichen die den gleichen
  49. Namen haben. Wenn jetzt nur zwei Spalten den gleichen Namen haben, liefert er das gleiche Ergebnis wie
  50. ein Inner Join, aber die zwei Spalten werden noch zusammengefasst. Wenn keine Spalten der Tabellen den gleichen Namen haben, liefert Natural Join das gleiche
  51. Ergebnis wie ein Cross Join. Gehen wir mal wieder von der Tabelle Film und Regisseur aus.
  52. Unseren Fremdschlüssel Regisseur benennen wir dabei in RegisseurId um. Dann wenden wir den natural join auf die beiden Tabellen an.
  53. 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
  54. 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.
  55. 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.
  56. 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
  57. 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.
  58. Mit einem Inner Join werden nur die Zeilen zurückgegeben, bei denen die Werte der angegebenen Spalten übereinstimmen.
  59. In SQL schreiben wir dafür ein join oder inner join und dahinter ein on mit Angabe der Spalten.
  60. 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
  61. Namen haben. Bei gleichen Spalten wird dabei die Spalte aus der zweiten Tabelle gelöscht.
  62. In SQL schreiben wir dafür ein natural join. Falls genau zwei Spalten den gleichen Namen haben, funktioniert Natural Join wie ein Inner
  63. Join, aber mit löschen einer Spalte. Falls es keine gleichnamigen Spalten gibt, wird er zum Cross Join.
  64. So Leude! Dat wars jetzt schon wieder für heute.
  65. Klickt doch gleich ins nächste Video. Ich bin auf jeden Fall da!

Zum Nachlesen