Vorteile der Verwendung von CTE:
Syntax:
Mit CTE-Name (Spalte1, Spalte2,… Spalten) als (Hier können Sie jede SQL -Anweisung als Abfrage definieren, auswählen, aktualisieren, löschen, einfügen oder erstellen Anweisungen. Wenn Sie die Spaltenliste mit Klausel definieren, muss die Anzahl der Spalten in der Abfrage mit der Anzahl der in der Klausel definierten Spalten gleich sein.
Voraussetzung:
Die CTE -Funktion wird von einer MySQL -Version weniger als 8 unterstützt.0. Sie müssen also MySQL 8 installieren.0 Vor dem Üben des Beispiels dieses Artikels. Sie können die aktuell installierte Version von MySQL überprüfen, indem Sie den folgenden Befehl ausführen.
$ mysql -vDie Ausgabe zeigt, dass MySQL Version 8.0.19 ist im System installiert.
Wenn die richtige Version installiert ist, erstellen Sie eine Datenbank mit dem Namen mydb und erstellen Sie zwei genannte Tabellen Benutzer Und user_profile Mit einigen Daten, um die Verwendung von CTE in MySQL zu kennen. Führen Sie die folgenden SQL -Anweisungen aus, um die Aufgaben zu erledigen. Diese Aussagen erstellen zwei verwandte Tabellen, die benannt sind Benutzer Und user_profile. Als nächstes werden einige Daten in beiden Tabellen durch Einfügenanweisungen eingefügt.
Datenbank erstellen mydb;Verwendung von einfachem CTE:
Hier ein sehr einfacher CTE namens namens CTE_USERS_PROFILE wird erstellt, wenn keine Feldliste mit CTE -Namen mit Klausel definiert ist und alle Daten von der abgerufen wird user_profile Tisch. Als nächstes wird die Auswahlanweisung verwendet, um alle Datensätze von zu lesen CTE_USERS_PROFILE CTE.
Mit CTE_USERS_PROFILE AS (Die folgende Ausgabe wird nach dem Ausführen der Anweisung angezeigt.
Verwendung eines einfachen CTE mit Spaltenliste:
Sie können CTE genauer erstellen, indem Sie die Feldliste mit CTE -Namen in der Klausel definieren. In diesem Fall entsprechen die mit dem CTE -Namen definierten Feldnamen den in der Abfrage in der With -Klausel definierten Feldnamen. Hier, Name Und Email Felder werden an beiden Stellen verwendet.
Mit CTE_USERS_PROFILE (Name, E -Mail) als (Nach dem Ausführen der obigen Anweisung wird die folgende Ausgabe angezeigt.
Verwendung eines einfachen CTE mit der Klausel:
Die Auswahlanweisung mit der Klausel kann in der CTE -Anweisung wie eine andere Auswahlabfrage definiert werden. Die Auswahl von Abfragen mit Abrufen von Datensätzen von Benutzer Und user_profile Tabellen, in denen die Werte von Benutzername Das Feld ist für beide Tabellen und den Wert von gleich Nutzername ist nicht 'Mitarbeiter''.
Mit cte_users als ((Die folgende Ausgabe wird nach dem Ausführen der Anweisung angezeigt.
Verwendung von einfachem CTE mit Gruppen nach Klausel:
Jede Aggregatfunktion kann in der in CTE verwendeten Abfrage verwendet werden. Die folgende CTE -Anweisung zeigt die Verwendung der SELECT -Abfrage mit count () -Funktion an. Die erste Auswahlanweisung wird verwendet, um alle Datensätze von anzuzeigen Benutzer Tabelle und die letzte Auswahlanweisung werden verwendet, um die Ausgabe von CTE anzuzeigen, die die Gesamtzahl der Benutzer aus zählt Benutzer Tisch, die aktiv sind.
Wählen Sie * von Benutzern aus;Die folgende Ausgabe wird nach dem Ausführen der Anweisung angezeigt.
Verwendung von einfachem CTE mit Gewerkschaftsbetreiber:
Die folgende CTE -Erklärung zeigt die Verwendung des Gewerkschaftsbetreibers in der CTE -Erklärung. Die Ausgabe zeigt die Werte von an Nutzername aus Benutzer Tisch, wo die Status Wert ist 'Inaktiv'und die anderen Werte von Nutzername aus user_profile Tisch.
Mit cte_users als ((Die folgende Ausgabe wird nach dem Ausführen der Anweisung angezeigt.
Verwendung eines einfachen CTE mit linksgerichtetem Join:
Die folgende CTE -Anweisung zeigt die Verwendung des linken Join in CTE. Die Ausgabe zeigt die Werte von an Name Und Email Felder von user_profile Tabelle durch Anwenden links Join basierend auf Nutzername Feld zwischen Benutzer Und user_profile Tabellen und wohin wird diese Aufzeichnungen herausgefiltert Benutzer Tabelle, in der der Wert von Status Ist 'Inaktiv''.
Mit cte_users als ((Die folgende Ausgabe wird nach dem Ausführen der Anweisung angezeigt.
Abschluss:
Wenn Sie die Abfrageleistung erhöhen und die Abfrageausgabe schneller erhalten möchten, ist die CTE die bessere Option als andere MySQL -Optionen. Dieser Artikel hilft MySQL -Benutzern, die Verwendung von CTE für die Auswahlabfrage sehr einfach zu lernen.