Eine kurze Analyse von MySQL-Verbindungen und -Sammlungen

Eine kurze Analyse von MySQL-Verbindungen und -Sammlungen

Join-Abfrage

Eine Join-Abfrage bezieht sich auf eine Matching-Abfrage zwischen zwei oder mehr Tabellen, die im Allgemeinen als horizontale Operation bezeichnet wird. Das bedeutet, dass das Endergebnis alle Spalten dieser Tabellen enthält. In MySQL gibt es drei Arten von Join-Operationen: Cross Join, Inner Join und Outer Join.

Ein Cross Join wird als CROSS JOIN bezeichnet. Er führt ein kartesisches Produkt für zwei Tabellen aus und gibt die Zusammensetzung aller Spalten in den beiden Tabellen zurück. Wenn beispielsweise die linke Tabelle n Datensätze und die rechte Tabelle m Datensätze enthält, ist das Endergebnis n*m Datensätze. Er kann jedoch auch mit sich selbst verknüpft werden, und das Endergebnis ist n*n Datensätze, wie in der folgenden Anweisung.

Wählen Sie * aus Bestellungen als Cross-Join-Bestellungen als b;
+---------+--------+---------+--------+
| Bestell-ID | Benutzer-ID | Bestell-ID | Benutzer-ID |
+---------+--------+---------+--------+
| 10007 | 2 | 10001 | 1 |
| 10006 | 4 | 10001 | 1 |
.....
| 10002 | 1 | 10007 | 2 |
| 10001 | 1 | 10007 | 2 |
+---------+--------+---------+--------+

49 Zeilen im Satz (0,01 Sek.)

Da die Tabelle „Bestellungen“ 7 Datensätze enthält, werden am Ende 49 Datensätze generiert. Eine andere Schreibweise ist wie folgt.

mysql> Auswahl * aus Bestellungen als A, Bestellungen als B;

Ihre Ergebnisse sind dieselben, aber sie werden unterschiedlich geschrieben. Die obige Schreibmethode ist der Standard für SQL, der 1989 vom American National Standards Institute erstellt wurde und ANSI SQL 89-Standard genannt wird, während die erste Schreibmethode 1992 festgelegt wurde.

Eine Verwendung von Cross Joins besteht darin, schnell doppelte Daten zu generieren, wie beispielsweise in der folgenden Anweisung.

Aufträge einfügen, wählen Sie a.orderId,a.userId aus Aufträgen als a, Aufträge als b, Limit 10;

Das Folgende ist ein innerer Join, der in zwei Teile unterteilt ist. Zuerst wird das kartesische Produkt generiert und dann gemäß der Filterbedingung ON gefiltert. Es werden Werte generiert, die in den beiden Tabellen dieselben Datensätze haben.

Neben dem Gleichheitsoperator (=) nach ON können Sie zur Bildung der Verbindungsbedingung auch weitere Operatoren wie beispielsweise Größer als (>), Kleiner als (<) und Ungleich (<>) verwenden.

Der letzte ist OUTER JOIN, der Daten zwischen Tabellen gemäß bestimmten Filterbedingungen abgleichen kann. Im Gegensatz zu INNER JOIN gibt es in der von OUTER JOIN hinzugefügten reservierten Tabelle nicht übereinstimmende Daten. MySQL unterstützt LEFT OUTER JOIN und RIGHT OUTER JOIN, und OUTER kann beim Schreiben weggelassen werden.

Unten sehen Sie ein Diagramm, das LEFT JOIN zeigt. LEFT JOIN gibt alle Datensätze aus der linken Tabelle (Tabelle1) und die passenden Datensätze aus der rechten Tabelle (Tabelle2) zurück.

Unten sehen Sie ein Diagramm, das RIGHT JOIN zeigt. RIGHT JOIN gibt alle Datensätze in der rechten Tabelle (Tabelle 2) und übereinstimmende Datensätze in der linken Tabelle (Tabelle 1) zurück.

Set-Operationen

In MySQL gibt es einen UNION-Operator, mit dem zwei oder mehr SELECT-Ergebnissätze kombiniert und doppelte Zeilen zwischen SELECT-Anweisungen gelöscht werden können. Bei der Verwendung sollten Sie die folgenden Grundregeln beachten:

  • Die Anzahl und Reihenfolge der Spalten muss in allen SELECT-Anweisungen gleich sein.
  • Außerdem müssen die Spalten den gleichen Datentyp haben.

Wenn wir nun die folgende Tabelle haben

Tabelle erstellen t1 (
    id INT PRIMÄRSCHLÜSSEL
);

TABELLE ERSTELLEN t2 (
    id INT PRIMÄRSCHLÜSSEL
);

IN t1 WERTE EINFÜGEN (1),(2),(3);
IN t2 EINFÜGEN WERTE (2),(3),(4);

Führen Sie den folgenden SQL-Befehl aus

Wählen Sie ID aus t1
UNION
WÄHLEN Sie die ID aus t2;

Das Endergebnis ist folgendes.

+----+
|Ich würde|
+----+
| 1 |
| 2 |
| 3 |
| 4 |
+----+
4 Zeilen im Satz (0,00 Sek.)

Standardmäßig entfernt die UNION-Anweisung doppelte Daten aus dem Ergebnissatz. Sie können jedoch UNION ALL verwenden, um doppelte Datensätze zu erhalten.

WÄHLEN Sie id AUS t1
UNION ALLE 
WÄHLEN Sie die ID aus t2;

Die Ergebnisse sind wie folgt

+----+
|Ich würde|
+----+
| 1 |
| 2 |
| 3 |
| 2 |
| 3 |
| 4 |
+----+
6 Zeilen im Satz (0,00 Sek.)

Der grundlegende Unterschied zwischen UNION und JOIN besteht darin, dass UNION Ergebnismengen horizontal kombiniert, während JOIN-Anweisungen Ergebnismengen vertikal kombinieren.

Zusammenfassen

Dies ist das Ende dieses Artikels über MySQL-Verbindungen und -Sammlungen. Weitere relevante MySQL-Verbindungen und -Sammlungen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung von MySQL-Unterabfragen (verschachtelte Abfragen), Verknüpfungstabellen und kombinierten Abfragen
  • Einführung in MySQL Advanced Query und Group By Collection

<<:  CSS horizontale Zentrierung und Begrenzung der maximalen Breite

>>:  Analyse des rel-Attributs in HTML

Artikel empfehlen

Verwenden Sie die Befehle more, less und cat in Linux, um Dateiinhalte anzuzeigen

Unter Linux können die Befehle cat, more und less...

6 Möglichkeiten, die von Linux-Prozessen belegten Portnummern anzuzeigen

Für Linux-Systemadministratoren ist es von entsch...

Tutorial zur Installation und Konfiguration von msmtp und mutt für Raspberry Pi

1. Installieren Sie mutt sudo apt-get install mut...

VMware ESXI-Servervirtualisierungscluster

Inhaltsverzeichnis Zusammenfassung Umgebung und W...

Tiefgreifendes Verständnis der JavaScript-Rückruffunktionen

Inhaltsverzeichnis Vorwort Kurzübersicht: JavaScr...

Einführung mehrerer benutzerdefinierter Schriftarten in CSS3

Heute habe ich ein Problem in HTML gefunden. Es s...

Tutorial zu XHTML-Webseiten

<br />Dieser Artikel soll Anfängern hauptsäc...

Details zur Verwendung des Vue-Slots

Inhaltsverzeichnis 1. Warum Slots verwenden? 1.1 ...