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

jQuery implementiert Warenkorbfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung des Unterschieds zwischen in und exists in MySQL

1. Bereiten Sie sich im Voraus vor Zu Ihrer Beque...

So aktualisieren Sie die Ansicht synchron nach Datenänderungen in Vue

Vorwort Vor kurzem bin ich auf ein interessantes ...

jQuery realisiert den Gleiteffekt des Dropdown-Menüs

Wenn wir eine Webseite erstellen, möchten wir man...

Schritte zur Installation von Pyenv unter Deepin

Vorwort In der Vergangenheit habe ich die Python-...

Ein paar Dinge zu favicon.ico (am besten im Stammverzeichnis ablegen)

Öffnen Sie eine beliebige Webseite, zum Beispiel ...

So implementieren Sie ein Hover-Dropdown-Menü mit CSS

Wie üblich werde ich heute über einen sehr prakti...

CSS3 realisiert das Effektdiagramm zur Produktanzeige auf der Website

Dieser Artikel stellt die Wirkung der Produktanze...

Pygame-Code zum Erstellen eines Schlangenspiels

Inhaltsverzeichnis Verwendete Pygame-Funktionen E...

Detaillierter Vue-Code zur Implementierung der Shuttle-Box-Funktion

Vue - Implementierung der Shuttle-Box-Funktion. D...

So installieren Sie MySQL in Docker

Ich habe kürzlich Django bereitgestellt und wollt...