Beispielanalyse der Ausführungsreihenfolge und Schreibreihenfolge von MySQL-Anweisungen

Beispielanalyse der Ausführungsreihenfolge und Schreibreihenfolge von MySQL-Anweisungen

Die vollständige Syntax der Select-Anweisung lautet:

WÄHLEN 
DISTINCT <Auswahlliste>
VON <linke_Tabelle>
<join_type> JOIN <rechte_Tabelle>
ON <Beitrittsbedingung>
WHERE <Wo_Bedingung>
GROUP BY <Gruppenliste>
HAVING <Haben_Bedingung>
ORDER BY <Bestellbedingung>
LIMIT <Grenzwert_Nummer>

Ausführungsreihenfolge:

von →Verbinden →auf →wo →Gruppieren nach →Haben →Auswählen →Sortieren nach →Begrenzen

(1) Die Rolle jedes Schlüsselworts:

from: Aus welcher Datentabelle möchten Sie Daten abrufen? Wenn ein Join vorhanden ist, führen Sie ein kartesisches Produkt (Cross Join) für die ersten beiden Tabellen in der FROM-Klausel aus, um eine temporäre Tabelle (n×m Zeilen) zu generieren.

ein: Die obigen temporären Tabellen bedingt filtern

links/rechts (verbinden): Ergänzen Sie die linke oder rechte Tabelle um diese vollständig zu halten. Wenn mehrere verknüpfte Tabellen vorhanden sind, führt die Zwischentabelle die beiden obigen Schritte für die nächste Tabelle fort.

  • wobei: Bedingungen zum Filtern der Daten in der Tabelle
  • Gruppieren nach: So gruppieren Sie die oben gefilterten Daten

Summe: Aggregatfunktion

  • Having: Bedingungen zum Filtern der oben gruppierten Daten
  • select: Zeigen Sie an, welche Spalte im Ergebnissatz oder das Berechnungsergebnis der Spalte

unterscheidbar:

  • Sortieren nach: die Reihenfolge, in der die zurückgegebenen Daten angezeigt werden sollen
  • limit: Begrenzen Sie die Anzahl der zurückgegebenen Abfrageergebnisse

(2) Der Unterschied zwischen on und where:

  • Die Screening-Bedingungen nach a.on gelten hauptsächlich für verwandte Tabellen [und sind nicht auf die Screening-Bedingungen der Haupttabelle anwendbar].
  • b. Wenn Sie nach dem Herstellen der Verbindung filtern möchten, sollten Sie die Bedingung nach „where“ einfügen. Wir müssen Assoziationstabellen anders behandeln. Wenn Sie nach einer bedingten Abfrage eine Verbindung herstellen möchten, sollten Sie die Abfrage nach „on“ einfügen.
  • c. Die Filterbedingung für die Haupttabelle sollte nach „where“ und nicht nach „on“ platziert werden.

(3) Der Unterschied zwischen „haben“ und „wo“:

  • a.having kann nur nach group by verwendet werden, um die gruppierten Ergebnisse zu filtern (d. h., die Voraussetzung für die Verwendung von having ist die Gruppierung).
  • b.where muss vor „group by“ stehen, also vor „having“.
  • Aggregatfunktionen sind im bedingten Ausdruck nach „where“ nicht zulässig, „having“ jedoch schon.

(4) Verwendung von count

Wenn Sie count(Spaltenname) verwenden und in einer Spalte ein Nullwert erscheint, wird count(*) trotzdem berechnet, count(Spaltenname) jedoch nicht.

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:
  • Analyse der Ausführungsreihenfolge von T-SQL-Abfrageanweisungen
  • Detaillierte Erläuterung der Ausführung von SQL-Anweisungen (Übersicht über die MySQL-Architektur -> Abfrageausführungsprozess -> SQL-Analysereihenfolge)
  • Django führt native MySQL-Anweisungen aus, um eine Prozessanalyse zu implementieren
  • Der Prozess und das Prinzip der Analyse und Ausführung von SQL-Anweisungen

<<:  Nachdem Webpack-cli erfolgreich installiert wurde, prüfen Sie den Fehlerfall webpack -v für Details.

>>:  Eine kurze Erläuterung zum Ändern/Festlegen der Umgebungsvariable JAVA_HOME unter Linux

Artikel empfehlen

Erfahren Sie mehr über MySQL-Indizes

1. Indexierungsprinzip Indizes werden verwendet, ...

Detaillierte Erklärung zur Verwendung von MySQL DML-Anweisungen

Vorwort: Im vorherigen Artikel haben wir hauptsäc...

Zusammenfassung der Unterschiede zwischen Get- und Post-Anfragen in Vue

Die Betriebsumgebung dieses Tutorials: Windows 7-...

Tutorial zum Erstellen eines Zookeeper-Servers unter Windows

Installation und Konfiguration Die offizielle Web...

Wissen Sie, wie man Mock in einem Vue-Projekt verwendet?

Inhaltsverzeichnis Erster Schritt: Der zweite Sch...

Detaillierte Erläuterung der MySQL-Fremdschlüsseleinschränkungen

Amtliche Dokumentation: https://dev.mysql.com/doc...

Beispiel für die Bereitstellung von MySQL 8.0 mit Docker

1. Informationen zur Installation von Docker find...

Implementierungsmethode der rekursiven MySQL-Baumabfrage

Vorwort Bei baumstrukturierten Daten in der Daten...

So führen Sie Befehle auf einem Remote-Linux-System über SSH aus

Manchmal müssen wir einige Befehle auf einem Remo...

Lösung für mobile Browser, die die Position nicht unterstützen: Fix

Die konkrete Methode ist wie folgt: CSS Code Code...

Unterschied zwischen den Methoden querySelector und getElementById in JS

Inhaltsverzeichnis 1. Übersicht 1.1 Verwendung vo...