Voraussetzungen für das Erscheinen des JOIN-Operators
Wenn die Datenmenge in Tabellen wächst, erscheinen darin häufig doppelte Werte. Die Produkttabelle enthält beispielsweise Markennamen. die sich manchmal wiederholen. Für sie wäre es sinnvoll, eine eigene Markentabelle zu haben, die beispielsweise solche Daten enthalten würde:
- id – Marken-ID;
- Name – Markenname;
- company_owner – der Name des Firmeneigentümers der Marke;
- company_contacts – Kontakte des Unternehmens des Markeninhabers.
Dann möchten wir eine Adressentabelle erstellen, in die wir alle Adressen eintragen könnten:
- id – ID-Adressen;
- Land;
- Region;
- Stadt;
- Straße;
- Haus;
- Reißverschluss.
Darüber hinaus könnten in dieser Tabelle nicht nur die Adressen von Markenunternehmen, sondern auch die Adressen von Kunden und Mitarbeitern gespeichert werden. Und dieser Ansatz ist einfach eine Folge des Wachstums der Datenmenge (der Anzahl der Zeilen in den Tabellen). Dies erleichtert die Manipulation von Daten in Tabellen und die Wahrung ihrer Integrität.
Wenn Sie 5 Mitarbeiter haben, können Sie deren Beruf einfach in die Spalte „Beruf“ eintragen . Wenn Ihr Unternehmen 5.000 Mitarbeiter beschäftigt, benötigen Sie eine Tabelle mit einer Liste von x Berufen und deren Verantwortlichkeiten.
In der Java-Sprache gibt es übrigens etwas Ähnliches. Wenn eine Methode viel Code enthält, besteht der Wunsch, ihn in mehrere Methoden aufzuteilen. Wenn eine Klasse viele Methoden enthält, möchte ich sie in mehrere Klassen aufteilen.
Aus diesem Grund verfügen große Datenbanken über Tausende von Tabellen. Und fast alle Abfragen werden auf mehreren Tabellen gleichzeitig ausgeführt. Und das kartesische Produkt der Zeilen von drei Tabellen, in denen jede tausend Datensätze enthält, beträgt bereits eine Milliarde Zeilen.
Aber allein das Filtern einer Milliarde Zeilen mit WHERE kann Stunden dauern. Daher haben die Ersteller der SQL-Sprache ihre Lösung angeboten – den JOIN-Operator.
Einführung in den JOIN-Operator
Der JOIN-Operator wird verwendet, um dem SQL-Server explizit mitzuteilen, dass wir kein kartesisches Produkt aller Tabellenzeilen für alle benötigen, sondern eine intelligente Verbindung von Zeilen verschiedener Tabellen, die über eine ID (oder auf andere Weise) aufeinander verweisen. . Der Server verfügt über einen separaten Algorithmus zur Verarbeitung von Tabellenverknüpfungen mithilfe des JOIN-Operators, wodurch solche Vorgänge wesentlich schneller ausgeführt werden können. Die allgemeine Form des JOIN-Operators ist wie folgt:
table 1 JOIN table 2 ON condition
Hier heißt es, dass Sie die Tabellen Tabelle1 und Tabelle2 zu einer Tabelle zusammenfassen und die Bedingung als Verknüpfungskriterium verwenden müssen .
Nehmen wir unser altes Beispiel:
SELECT * FROM employee, task WHERE emploee.id = task.emploee_id
Und schreiben Sie es mit dem JOIN-Operator um:
SELECT * FROM employee JOIN task ON emploee.id = task.emploee_id
In unserem Fall liefern beide Abfragen das gleiche Ergebnis, aber das liegt nur daran, dass die Abfragen sehr einfach sind. Mit WHERE können Sie in Zukunft genau den Zeilenfilter aufbauen und mit dem hinter ON angegebenen können Sie komplexe Skripte zum Verknüpfen von Tabellen schreiben. Sie können bei Verwendung der JOIN-Anweisung auch Aliase (Tabellenaliase) verwenden. Beispiel:
SELECT * FROM employee e JOIN task t ON e.id = t.emploee_id