Ein kurzes Verständnis der MySQL SELECT-Ausführungsreihenfolge

Ein kurzes Verständnis der MySQL SELECT-Ausführungsreihenfolge

Die vollständige Syntax der SELECT-Anweisung lautet:

(7) AUSWÄHLEN 
(8) DISTINCT <Auswahlliste>
(1) FROM <linke_Tabelle>
(3) <join_type> JOIN <rechte_Tabelle>
(2) ON <Beitrittsbedingung>
(4) WHERE <Wo_Bedingung>
(5) GRUPPE NACH <Gruppenliste>
(6) HAVING <Haben_Bedingung>
(9) ORDER BY <order_by_condition>
(10) LIMIT <Grenzwert>

Hinweis: Die Sequenznummer vor der Syntax ist die SELECT-Ausführungsreihenfolge

Die MySQL SELECT-Ausführungsreihenfolge ist in 10 Schritte unterteilt. Wie oben markiert, ist die erste auszuführende Operation die FROM-Operation und die letzte auszuführende Operation die LIMIT-Operation. Jeder Vorgang generiert eine virtuelle Tabelle, die als Eingabe für die Verarbeitung verwendet wird. Diese virtuellen Tabellen sind für den Benutzer transparent, aber nur die letzte virtuelle Tabelle wird als Ergebnis zurückgegeben. Wenn in der Anweisung eine Klausel nicht angegeben ist, wird der entsprechende Schritt übersprungen.

Sehen wir uns die einzelnen Phasen der Abfrageverarbeitung genauer an.

WÄHLEN Sie a.customer_id, COUNT(b.order_id) als total_orders
 VON Tabelle1 ALS
 LEFT JOIN Tabelle2 AS b
 EIN a.Kunden-ID = b.Kunden-ID
 WO a.Stadt = "Hangzhou"
 GRUPPE NACH a.customer_id
 HAVING Anzahl(b.order_id) < 2
 ORDER BY total_orders DESC;

1. FORM: Berechnen Sie das kartesische Produkt der Tabelle links und der Tabelle rechts von FROM, um die virtuelle Tabelle VT1 zu generieren.

2. ON: Führen Sie eine ON-Filterung für die virtuelle Tabelle VT1 durch. In der virtuellen Tabelle VT2 werden nur die Zeilen aufgezeichnet, die die <Join-Bedingung> erfüllen.

3. JOIN: Wenn OUTER JOIN angegeben ist (z. B. Left Join, Right Join), werden die nicht übereinstimmenden Zeilen in der beibehaltenen Tabelle der virtuellen Tabelle VT2 als externe Zeilen hinzugefügt, wodurch die virtuelle Tabelle VT3 generiert wird.

4. WHERE: Filtern Sie die virtuelle Tabelle VT3 basierend auf der WHERE-Bedingung. Nur Datensätze, die die <Where-Bedingung> erfüllen, werden in die virtuelle Tabelle VT4 eingefügt.

5. GROUP BY: Gruppieren Sie die Datensätze in VT4 gemäß den Spalten in der Group-By-Klausel, um VT5 zu generieren.

6. HAVING: Wenden Sie die Having-Filterung auf die virtuelle Tabelle VT5 an, und nur Datensätze, die die <Having-Bedingung> erfüllen, werden in die virtuelle Tabelle VT6 eingefügt.

7. SELECT: Führen Sie den Auswahlvorgang aus, wählen Sie die angegebene Spalte aus und fügen Sie sie in die virtuelle Tabelle VT7 ein.

8. DISTINCT: Entfernen Sie doppelte Datensätze in VT7. Generieren Sie eine virtuelle Tabelle VT8.

9. ORDER BY: Sortieren Sie die Datensätze in der virtuellen Tabelle VT8 gemäß <order_by_list>, um die virtuelle Tabelle VT9 zu generieren.

10. LIMIT: Nehmen Sie die Datensätze der angegebenen Zeile heraus, generieren Sie die virtuelle Tabelle VT10 und geben Sie das Ergebnis zurück.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Eine kurze Diskussion zur MySQL-Select-Optimierungslösung
  • MySQL-Beispiel-Tutorial: Ergebnisse auswählen, um ein Update durchzuführen
  • Beheben Sie das Problem, dass die Lese-/Schreibtrennung von MySQL dazu führt, dass Daten nach dem Einfügen nicht ausgewählt werden
  • Wie die MySQL Select-Anweisung ausgeführt wird
  • Implementierung von MySQL Select in der Unterabfrageoptimierung
  • MySQL-Lernhinweise: Vollständiges Verwendungsbeispiel für Select-Anweisungen, detaillierte Erläuterung
  • Codebeispiele für MySQL-Batchoperationsanweisungen „Select“, „Insert“ und „Update“
  • Erläuterung der MySQL-Transaktionsauswahl für die Aktualisierung und Datenkonsistenzverarbeitung
  • Der Unterschied zwischen Update und Select in MySQL für einzelne und mehrere Tabellen sowie Ansichten und temporäre Tabellen
  • Detaillierte Erläuterung der Verwendung des MySQL-Auswahl-Cache-Mechanismus
  • Zusammenfassung der Select-Verwendung in der MySql-Datenbank
  • So wird eine Select-Anweisung in MySQL ausgeführt

<<:  Der Unterschied und die Verwendung von Strg+z, Strg+c und Strg+d in Linux-Befehlen

>>:  Detaillierte Beispiele für Variablen- und Funktionspromotion in JavaScript

Artikel empfehlen

Detaillierte Konfiguration der drahtlosen Netzwerkkarte unter Ubuntu Server

1. Stecken Sie die WLAN-Karte ein und prüfen Sie ...

jQuery implementiert alle Warenkorbfunktionen

Inhaltsverzeichnis 1. Alles auswählen 2. Erhöhen ...

Detaillierte Erklärung der Stammverzeichniseinstellungen in nginx.conf

Bei der Konfiguration von nginx.conf treten immer...

Implementierungscode der Front-End-HTML-Skin-Änderungsfunktion

50 Zeilen Code zum Ändern von 5 Hautfarben, einsc...

Lösen Sie das Problem beim Ausführen von Jupyter Notebook auf dem Server

Inhaltsverzeichnis Auf dem Server läuft Jupyter N...

Vue + ElementUI implementiert Paging-Funktion - MySQL-Daten

Inhaltsverzeichnis 1. Problem 2. Lösung 2.1 Pagin...

Einführung in den vollständigen Namen und die Funktion von HTML-Tags

Alphabetisch DTD: Gibt an, in welcher XHTML 1.0 D...

Probleme und Lösungen beim Verbinden des Knotens mit der MySQL-Datenbank

Ich habe heute eine neue Version von MySQL (8.0.2...

Zusammenfassung des in JS implementierten Minesweeping-Projekts

Dieser Artikel enthält die Zusammenfassung des JS...

Detaillierte Erklärung zum Anpassen des Linux-Befehlsverlaufs

Der Befehl „Bash History“ im Linux-System hilft d...