Heim >Datenbank >MySQL-Tutorial >Binäre relationale Operationen: Verkettung und Division
In einem Datenbankverwaltungssystem ist die Fähigkeit, Daten aus mehreren Tabellen zusammenzuführen und abzurufen, von entscheidender Bedeutung für eine effektive Datenorganisation und -bearbeitung. JOIN- und DIVISION-Operationen sind zwei binäre relationale Operationen, die es Benutzern ermöglichen, Daten aus mehreren Tabellen basierend auf angegebenen Bedingungen zu kombinieren oder zu teilen. In diesem Artikel werfen wir einen detaillierten Blick auf die JOIN- und DIVISION-Operationen, einschließlich ihrer Syntax, Typen und Beispiele für deren Verwendung in SQL und anderen Programmiersprachen.
Die JOIN-Operation kombiniert Zeilen aus zwei oder mehr Tabellen basierend auf verwandten Spalten oder Spaltensätzen (Schlüssel genannt). Die resultierende Tabelle wird als Join-Tabelle bezeichnet und enthält alle Spalten der Originaltabelle, wobei jede Zeile eine Kombination von Zeilen aus der Originaltabelle darstellt, die die Join-Bedingung erfüllen.
Es gibt viele Arten von JOIN, jede mit ihren eigenen einzigartigen Eigenschaften und Anwendungsfällen –
INNER JOIN – INNER JOIN kombiniert Zeilen aus zwei Tabellen, die den Join-Kriterien entsprechen. Es gibt nur Zeilen zurück, die die Bedingung erfüllen, und verwirft den Rest.
OUTER JOIN – OUTER JOIN kombiniert alle Zeilen aus zwei Tabellen, einschließlich derjenigen, die die Join-Bedingungen nicht erfüllen. Es gibt drei Arten von OUTER JOIN: LEFT JOIN, RIGHT JOIN und FULL JOIN.
LEFT JOIN – LEFT JOIN gibt alle Zeilen in der linken Tabelle und alle passenden Zeilen in der rechten Tabelle zurück. Wenn es keine Übereinstimmung gibt, wird ein NULL-Wert für die Spalte der rechten Tabelle zurückgegeben.
RIGHT JOIN – RIGHT JOIN gibt alle Zeilen aus der rechten Tabelle und alle passenden Zeilen aus der linken Tabelle zurück. Liegt keine Übereinstimmung vor, werden für die Spalten der linken Tabelle NULL-Werte zurückgegeben.
FULL JOIN – Ein FULL JOIN gibt alle Zeilen in beiden Tabellen zurück, plus NULL-Werte für alle nicht übereinstimmenden Zeilen.
Die Syntax der JOIN-Operation variiert je nach verwendeter Programmiersprache und Datenbankverwaltungssystem. Das Folgende ist ein allgemeines Syntaxbeispiel für die JOIN-Operation in SQL -
SELECT * FROM table1 JOIN table2 ON table1.key = table2.key
In diesem Beispiel ruft die SELECT-Anweisung alle Spalten in Tabelle1 und Tabelle2 ab und die JOIN-Klausel verwendet das Schlüsselwort ON, um die zu verknüpfenden Tabellen und die Verknüpfungsbedingungen anzugeben.
Hier ist ein INNER JOIN-Beispiel in SQL, das die Tabellen „customers“ und „orders“ basierend auf der Spalte „customer_id“ kombiniert -
SELECT * FROM customers INNER JOIN orders ON customers.customer_id = orders.customer_id
Dieser INNER JOIN gibt eine Tabelle zurück, die alle Zeilen aus der Tabelle „customers“ und der Tabelle „orders“ enthält, wobei die Spalte „customer_id“ in der Tabelle „customers“ mit der Spalte „customer_id“ in der Tabelle „orders“ übereinstimmt.
Hier ist ein LEFT JOIN-Beispiel in SQL, das die Tabellen „employees“ und „departments“ basierend auf der Spalte „department_id“ kombiniert -
SELECT * FROM employees LEFT JOIN departments ON employees.department_id = departments.department_id
Dieser LEFT JOIN gibt eine Tabelle zurück, die alle Zeilen aus der Tabelle „Mitarbeiter“ und alle passenden Zeilen aus der Tabelle „Abteilungen“ enthält. Wenn es keine Übereinstimmung gibt, wird ein NULL-Wert für die Spalte der Tabelle „departments“ zurückgegeben.
DIVISION-Operation ist eine binäre relationale Operation, die einen Satz von Zeilen basierend auf angegebenen Bedingungen in einen anderen Satz von Zeilen unterteilt. Es ähnelt der JOIN-Operation, die Ergebnistabelle enthält jedoch nur Zeilen, die zur ersten Gruppe gehören und die Partitionierungskriterien erfüllen.
Die Syntax der DIVISION-Operation variiert je nach verwendeter Programmiersprache und Datenbankverwaltungssystem. Das Folgende ist ein allgemeines Syntaxbeispiel für die DIVISION-Operation in SQL -
SELECT * FROM table1 WHERE EXISTS (SELECT * FROM table2 WHERE table1.key = table2.key)
In diesem Beispiel ruft die SELECT-Anweisung alle Spalten in Tabelle1 ab und die WHERE-Klausel verwendet das Schlüsselwort EXISTS, um zu prüfen, ob es Zeilen in Tabelle2 gibt, die die Divisionsbedingung erfüllen.
Hier ist ein Beispiel für die DIVISION-Operation in SQL, die die Tabelle „customers“ basierend auf der Spalte „customer_type“ in zwei Sammlungen aufteilt –
SELECT * FROM customers WHERE EXISTS (SELECT * FROM orders WHERE customers.customer_id = orders.customer_id)
Dieser DIVISION-Vorgang gibt eine Tabelle zurück, die alle Zeilen in der Tabelle „Kunden“ enthält, wobei es in der Tabelle „Bestellungen“ basierend auf der Spalte „Kunden-ID“ eine entsprechende Zeile gibt.
Hier sind einige weitere Themen, die Ihnen möglicherweise zum Verständnis der JOIN- und DIVISION-Operationen hilfreich sein können -
Natürlicher Join vs. äußerer Join – Ein natürlicher Join ist ein innerer Join, der Zeilen aus zwei oder mehr Tabellen basierend auf Spalten mit demselben Namen kombiniert. Ein äußerer Join ist jede Art von Join, der Zeilen aus einer oder beiden Tabellen enthält, die die Join-Bedingungen nicht erfüllen.
Kartesisches Produkt – Das kartesische Produkt ist das Ergebnis einer JOIN-Operation, die keine Join-Bedingung angibt. Es kombiniert jede Zeile aus einer Tabelle mit jeder Zeile aus der anderen Tabelle und erstellt so eine Tabelle mit einer Anzahl von Zeilen, die dem Produkt der Anzahl von Zeilen in jeder Originaltabelle entspricht.
Self-Join – Ein Self-Join ist ein Join-Typ, der Zeilen aus einer einzelnen Tabelle basierend auf einer Join-Bedingung kombiniert. Dies ist nützlich, um Zeilen in derselben Tabelle zu vergleichen oder Hierarchien in einer Tabelle zu erstellen.
SET OPERATOR – Der SET-Operator wird verwendet, um die Ergebnisse mehrerer SELECT-Anweisungen in einer einzigen Ergebnismenge zu kombinieren. Sie können in Verbindung mit JOIN- und DIVISION-Operationen verwendet werden, um Daten in mehreren Tabellen weiter zu bearbeiten. Die gebräuchlichsten SET-Operatoren sind UNION, INTERSECT und MINUS.
Indizierung – Bei der Indizierung wird eine separate Datenstruktur erstellt, die einen schnelleren Zugriff auf Zeilen in einer Tabelle ermöglicht. Es kann verwendet werden, um die Leistung von JOIN- und DIVISION-Vorgängen zu verbessern, indem die Datenmenge reduziert wird, die gescannt und verglichen werden muss.
JOIN- und DIVISION-Operationen sind wichtige Werkzeuge zum Kombinieren und Teilen von Daten aus mehreren Tabellen in Datenbankverwaltungssystemen. Wenn Sie die Syntax und Anwendungsfälle dieser Vorgänge verstehen, können Sie Daten in Ihrer Datenbank effizient abrufen und bearbeiten.
Das obige ist der detaillierte Inhalt vonBinäre relationale Operationen: Verkettung und Division. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!