Zurück zur Artikelliste Artikel
9 Leseminuten

Wie man SQL JOINs übt

Es gibt keinen besseren Weg, SQL-Joins zu lernen als durch Übung. Allerdings wird es auf dem Weg dorthin wahrscheinlich Hindernisse geben. Ich werde auf einige dieser Hindernisse eingehen und Anregungen geben, wie man sie überwinden kann. Dieser Artikel wird Sie zwar nicht zu einem SQL-JOINs Experten machen, aber er wird Ihnen zeigen, wie Sie es werden können. Also, fangen wir an!

Herausforderungen beim Üben SQL-JOINs

Es ist schwer zu beantworten: "Wie meistert man SQL-JOINs?" Aber es ist einfach zu beantworten: "Wie übt man SQL-JOINs?" Dies ist der Weg zur Beherrschung von SQL-JOINs.

Wenn Sie diesen Artikel lesen, haben Sie wahrscheinlich schon angefangen, sich mit Datenbanken zu beschäftigen und zu verstehen, was sie sind. Außerdem verstehen Sie wahrscheinlich einige grundlegende Konzepte wie Tabellen, Primär- und Fremdschlüssel, das Schreiben einfacher SELECT Anweisungen, usw.

Sie sind also bereit, komplexere Abfragen zu schreiben, stehen aber wahrscheinlich vor einigen Herausforderungen. Die Herausforderungen, die ich in diesem Artikel anspreche, sind solche, die ich selbst erlebt habe, wenn ich etwas Neues gelernt habe. Lassen Sie uns also die häufigsten Herausforderungen auflisten.

Verwendung der richtigen Daten

Es ist nichts Neues zu sagen, dass Datenbanken auf Daten basieren. Es beginnt mit realen Daten, die digital in einer Datenbank gespeichert werden. Dann müssen diese Informationen aus der Datenbank abgerufen und in aussagekräftige Berichte umgewandelt werden. Ich kann mir nicht vorstellen, sinnvolle Berichte aus Datenbanken zu erstellen, ohne JOINs zu verwenden.

Vielleicht arbeiten Sie bei einem Finanzinstitut, vielleicht analysieren Sie Wahlergebnisse, oder vielleicht fragen Sie sich, wie die Nutzer Ihres Handyspiels es tatsächlich verwenden. Vielleicht bereiten Sie sich auch auf ein Vorstellungsgespräch vor. In jedem Fall müssen Sie wissen, wie Sie mit Tausenden oder Millionen von Datensätzen in vielen verschiedenen Tabellen umgehen können.

Ihr Ziel wird es sein, Abfragen zu schreiben, die genau das zurückgeben, was Sie wollen. Dazu müssen Sie wissen, wie man den SQL-Code schreibt, und zumindest eine Vorstellung davon haben, wie das Endergebnis aussehen soll.

Beim Üben von SQL-JOINs kann es eine Herausforderung sein, einen geeigneten Datensatz zu finden. Wahrscheinlich werden die Unternehmen ihre Daten nicht zum Üben zur Verfügung stellen, aber mit unzureichenden Datensätzen zu üben, ist keine gute Option. Wenn die Abfrage nichts ergibt, können Sie nicht sicher sein, ob Sie die Abfrage falsch geschrieben haben oder ob der Datensatz nichts enthält, was den Kriterien entspricht.

Das ideale Dataset ermöglicht es Ihnen, Ergebnisse für die gängigsten Abfragen und auch für einige interessante Sonderfälle zu erhalten. Technisch gesehen könnten Sie ein Dataset selbst erstellen, aber es gibt einige erhebliche Herausforderungen:

  1. Sie müssen wissen, wie Sie es erstellen - kümmern Sie sich um die Daten, Schlüssel, Einfügungen usw.
  2. Sie müssen wissen, welche Fälle Sie mit den Daten abdecken wollen. Das ist schwierig, denn Sie üben, um dies zu lernen und nicht umgekehrt.
  3. Der Datensatz muss groß genug sein - es können nicht nur ein paar Zeilen in jeder Tabelle sein. Es braucht Zeit, um reale Informationen zu sammeln (z. B. Listen von Städten und Ländern) oder eigene Daten zu erstellen (imaginäre Mitarbeiter, Rollen usw.).

Die richtigen Beispiele finden

Sie brauchen nicht nur einen guten Datensatz, sondern auch Beispiele, die Ihnen helfen, effizient und effektiv zu lernen. Sie können im Internet leicht Tausende von Beispielen finden, aber einige könnten zu einfach sein, während andere vielleicht über das hinausgehen, was Sie in diesem Moment verstehen können. Am besten ist es, wenn Sie sich Schritt für Schritt von einfachen Beispielen zu komplexen Beispielen vorarbeiten.

Die Beispiele sollten leicht verständlich sein und sich an den Problemen und Implementierungen orientieren, die Ihnen in Ihrem Beruf begegnen werden. Die Tabellen sollten solche sein, die in fast jeder Datenbank verwendet werden (z.B. Benutzer, Kunden, Studenten, Autos, etc.). Dadurch werden die Beispiele verständlicher und lassen sich besser auf reale Situationen übertragen.

Gleichgewicht zwischen Theorie und Anwendung

Die meisten Menschen, die lernen, wie man SQL-JOINs schreibt, sind nicht sehr an der Theorie dahinter interessiert. Es ist zwar immer gut, die Theorie zu verstehen, aber die Situation erlaubt es uns nicht immer, so viel Zeit darauf zu verwenden. Das gilt für fast alles im Leben, und der Schlüssel ist, ein Gleichgewicht zu finden.

Sie sollten gerade so viel Theorie lernen, dass Sie verstehen, was Sie tun, wenn Sie Abfragen schreiben. Das heißt nicht, dass Sie nicht so viel wie möglich lernen sollten, aber Sie sollten es schrittweise tun. Sie sollten wissen, was von Ihnen verlangt wird, welches JOIN Sie verwenden müssen und warum.

Online üben SQL-JOINs

Egal, was Sie lernen, Sie sollten mit den Grundlagen beginnen und Ihr Wissen mit der Zeit verbessern - nicht zu schnell und nicht zu langsam. Wie lernt man also am besten SQL-JOINs?

Ich persönlich liebe Geschichte. Sie ist eine meiner Leidenschaften (neben Datenbanken, natürlich). Mein Partner sagt oft, ich sei eine "Quelle" für skurrile historische Fakten. Und ich stimme dem zu. Die meisten dieser skurrilen Fakten finde ich durch Videos. Es gibt tolle Videos im Internet. Ich wünschte, ich hätte das gehabt, als ich zur Schule ging.

Aber es gibt ein Problem mit diesem Ansatz beim Lernen von SQL-JOINs und den meisten anderen IT-bezogenen Themen. Man kann sich nicht einfach ein Video ansehen, in dem jemand anderes programmiert, und dann erwarten, dass man dieses Wissen hat. Sie werden zwar definitiv etwas lernen, aber nichts ist besser, als selbst Code zu schreiben.

Wenn man sich Videos ansieht, nimmt man Dinge als selbstverständlich hin und lernt nicht durch Handeln. Wenn man anfängt, den Code zu schreiben, merkt man, dass man wirklich lernt, wie man SQL-JOINs benutzt. Damit will ich nicht sagen, dass Videokurse nicht ein wichtiger Teil des Lernprozesses sind. Ich glaube nur, dass man SQL JOINs nicht beherrschen kann, wenn man sich nur Videos ansieht.

Daher empfehle ich Ihnen dringend, SQL-JOINs durch das Schreiben von Code zu erlernen. Eine Möglichkeit, dies zu tun, besteht darin, online zu üben.

Ich werde eine meiner persönlichen Erfahrungen teilen. Ich war schon immer begeistert von der Installation einer neuen Entwicklungsumgebung. Nach jeder Installation habe ich das Programm gestartet und natürlich einen leeren Bildschirm gesehen. Okay, das war zu erwarten. Der nächste Schritt war dann meist, online nach Beispielen zu googeln, aber das war nicht ideal.

Auch wenn Sie vielleicht ein Fan von Büchern, Videos oder sogar vom Googeln sind, gibt es meiner Meinung nach keine bessere Möglichkeit, etwas herauszufinden, als einen Kurs zu besuchen, der sich mit dem Thema befasst, mit dem Sie ein Problem haben. Du bekommst Beispiele, die gut vorbereitet und beschrieben sind. Außerdem sind diese Beispiele so angeordnet, dass Sie sich langsam an kompliziertere Probleme herantasten können.

SQL JOIN-Typen und Beispiele

SQL unterstützt verschiedene Arten von JOINs, um das gewünschte Ergebnis zu erhalten. Hier sind die bekanntesten JOINs.

INNER JOIN

INNER JOIN wird verwendet, um zwei Tabellen auf der Grundlage einer Bedingung zu verbinden. Tabellen werden mit einer Bedingung verbunden, die nach ON geschrieben wird. Normalerweise werden hier Primär- und Fremdschlüsselattribute verwendet, aber es sind auch andere Varianten möglich. Nur Zeilen aus Tabellen, die in INNER JOIN enthalten sind und ein durch die Bedingung definiertes Paar haben, werden zurückgegeben.

SELECT *
FROM student
INNER JOIN room ON student.room_id = room.id;

LEFT JOIN

LEFT JOIN macht dasselbe wie INNER JOIN mit der Ausnahme, dass es zwei Tabellen nimmt, die "linke" Tabelle und die "rechte" Tabelle. Die Bedingung wird nach ON geschrieben. Es werden alle Zeilen aus der "linken" Tabelle zurückgegeben, auch die, die kein Paar in der "rechten" Tabelle haben.

SELECT *
FROM student
LEFT JOIN room ON student.room_id = room.id;

RIGHT JOIN

RIGHT JOIN macht dasselbe wie LEFT JOIN, nur dass es alle Zeilen aus der "rechten" Tabelle nimmt und sie mit der "linken" Tabelle verbindet. Da LEFT JOIN und RIGHT JOIN ähnlich sind und man RIGHT JOIN mit LEFT JOIN simulieren kann (einfach die Reihenfolge der Tabellen in der Verknüpfung vertauschen), wird RIGHT JOIN nur selten verwendet. Ein weiterer Grund dafür ist, dass wir von oben nach unten und von links nach rechts lesen. Daher ist die Lesbarkeit der Abfrage mit LEFT JOIN intuitiver.

SELECT *
FROM student
RIGHT JOIN room ON student.room_id = room.id;

Mehrere JOINs

Multiple JOINs ermöglichen es Ihnen, mehr als zwei Tabellen zu verbinden. Die Verknüpfung von mehr als zwei Tabellen ist ziemlich häufig. Sie werden die gleichen JOINs verwenden, die wir bisher erwähnt haben, sowie einige Regeln, die auf sie angewendet werden. Achten Sie darauf, dass jede JOIN ihre eigenen Bedingungen hat, die nach ON geschrieben werden. Um die Lesbarkeit zu erhöhen und die Dinge zu vereinfachen, setzen Sie jede JOIN in eine neue Zeile.

SELECT *
FROM student
INNER JOIN room ON student.room_id = room.id
INNER JOIN equipment ON equipment.room_id = room.id;

VOLLER JOIN

FULL JOIN gibt alle Zeilen aus der "linken" und "rechten" Tabelle zurück, auch wenn sie ein Paar haben. Einige DBMS unterstützen FULL JOIN, andere nicht. Sie können FULL JOIN leicht simulieren, indem Sie die Kombination von LEFT JOIN und RIGHT JOIN wie unten gezeigt verwenden.

SELECT movie.*, director.*
FROM movie
LEFT JOIN director ON movie.director_id = director.id
UNION
SELECT movie.*, director.*
FROM movie
RIGHT JOIN director ON movie.director_id = director.id;

Selbst-JOINs

Self JOINs sind keine Art von JOIN, sondern eine Möglichkeit, eine Tabelle mehr als einmal in einem JOIN zu verwenden. Das bedeutet, dass Sie die Tabelle mit sich selbst verbinden. Wenn Sie also zwei Tabellen haben, wird eine Tabelle auf der linken und die andere auf der rechten Seite des JOIN stehen. Hier sind einige Beispiele, wann Sie dies tun müssen: "Auflistung aller Mitarbeiter und aller anderen Mitarbeiter, die älter sind als dieser Mitarbeiter" und "Herausfinden, ob es Direktoren gibt, die ein geringeres Gehalt haben als einer der Mitarbeiter". Einfach ausgedrückt: Sie benötigen zweimal Daten aus derselben Tabelle und müssen diese beiden Datensätze auf der Grundlage einer Bedingung verknüpfen/vergleichen.

Nicht-Equi JOINs

Bisher haben wir nur Gleichungen in JOIN Bedingungen (nach dem Schlüsselwort ON) verwendet. Das ist jedoch nicht erforderlich. Sie können in einer Bedingung tun, was immer Sie wollen, aber seien Sie sich bewusst, dass dies Auswirkungen auf die Ausgabe hat (und stellen Sie natürlich sicher, dass Sie wissen, was Sie tun).

SELECT *
FROM student s1
INNER JOIN student s2 on s1.id < s2.id
ORDER BY s1.id, s2.id;

Beachten Sie, dass die obige Abfrage ein Beispiel für ein Self JOIN ist (wir haben die student Tabelle zweimal verwendet), sowie eine nicht-gleiche JOIN (Verwendung von "<" anstelle von "=" in der Bedingung s1.id < s2.id). Die Abfrage selbst gibt alle Schüler in Kombination mit anderen Schülern (außer ihnen) zurück. Jede Kombination wird genau einmal zurückgegeben.

Möchten Sie mehr über SQL-JOINs erfahren? Sehen Sie sich eine Folge unserer We Learn SQL-Serie auf Youtube an. Prüfen Sie, ob Sie bereits alles über die verschiedenen Arten von JOINs wissen.

Schlussfolgerung

Es gibt keine einfache Antwort auf die Frage "Wie beherrscht man SQL-JOINs?" Der einzige Weg ist, es zu versuchen, zu scheitern und schließlich Erfolg zu haben. Je nachdem, wie viel Wissen Sie haben und wie Sie üben, wird es mehr oder weniger Zeit in Anspruch nehmen. Das bringt uns wieder zu der Frage "Wie übt man SQL-JOINs?" Letztendlich ist das die Frage, die wir beantworten müssen.

Welchen Weg Sie auch immer wählen, stellen Sie sicher, dass Sie das Beste aus Ihrer Zeit- und Geldinvestition herausholen. Sie können zwar Geld verdienen, aber niemand wird Ihnen Ihre Zeit zurückgeben. Mein Vorschlag ist, so viel wie möglich mit Beispielen zu üben.

Wenn Sie sich zum Lernen einige Videos ansehen möchten, empfehle ich Ihnen dieses. Ich denke, es wird Ihnen gefallen, besonders wenn Sie ein Fan von SQL-JOINs und Science Fiction sind.