Avantages de l'utilisation du CTE:
Syntaxe:
Avec cte-name (Column1, Column2,… Columnn) comme (Ici, vous pouvez définir n'importe quelle instruction SQL comme requête, sélectionnez, mise à jour, supprimer, insérer ou créer. Si vous définissez la liste des colonnes avec clause, alors le nombre de colonnes dans la requête doit être la même avec le nombre de colonnes définies avec la clause.
Prérequis:
La fonction CTE n'est pas prise en charge par aucune version MySQL inférieure à 8.0. Donc, vous devez installer mysql 8.0 Avant de pratiquer l'exemple de cet article. Vous pouvez vérifier la version actuellement installée de MySQL en exécutant la commande suivante.
$ mysql -vLa sortie montre que MySQL Version 8.0.19 est installé dans le système.
Si la version correcte est installée, créez une base de données nommée mydb et créer deux tables nommées utilisateurs et users_profile avec certaines données pour connaître les utilisations du CTE dans MySQL. Exécutez les instructions SQL suivantes pour effectuer les tâches. Ces déclarations créeront deux tables connexes nommées utilisateurs et users_profile. Ensuite, certaines données seront insérées dans les deux tableaux par insert des instructions.
Créer une base de données MyDB;Utilisation du CTE simple:
Ici un CTE très simple nommé cte_users_profile est créé où aucune liste de champs n'est définie avec le nom CTE avec la clause et il récupérera toutes les données de la users_profile tableau. Ensuite, l'instruction SELECT est utilisée pour lire tous les enregistrements de cte_users_profile Cte.
Avec cte_users_profile comme (La sortie suivante apparaîtra après avoir exécuté l'instruction.
Utilisation du CTE simple avec la liste des colonnes:
Vous pouvez créer CTE plus spécifiquement en définissant la liste des champs avec le nom CTE avec clause. Dans ce cas, les noms de champ définis avec le nom CTE seront les mêmes que les noms de champ définis dans la requête de sélection à l'intérieur de la clause avec. Ici, nom et e-mail Les champs sont utilisés aux deux endroits.
Avec cte_users_profile (nom, e-mail) comme (La sortie suivante apparaîtra après avoir exécuté l'instruction ci-dessus.
Utilisation du CTE simple avec la clause Where:
L'instruction SELECT avec la clause où peut être définie dans la déclaration CTE comme une autre requête sélectionnée. La requête sélectionnée avec des enregistrements de récupération à partir de utilisateurs et users_profile tableaux où les valeurs de Nom des utilisateurs le champ est égal pour les deux tables et la valeur de nom d'utilisateur n'est pas 'personnel'.
Avec cte_users comme (La sortie suivante apparaîtra après avoir exécuté l'instruction.
Utilisation du CTE simple avec groupe par clause:
Toute fonction agrégée peut être utilisée dans la requête utilisée dans CTE. L'instruction CTE suivante affiche l'utilisation de la requête sélectionnée avec la fonction Count (). La première instruction SELECT est utilisée pour afficher tous les enregistrements de utilisateurs la table et la dernière instruction SELECT est utilisée pour afficher la sortie de CTE qui comptera le nombre total d'utilisateurs de utilisateurs table qui est active.
Sélectionner * chez les utilisateurs;La sortie suivante apparaîtra après avoir exécuté l'instruction.
Utilisation du CTE simple avec l'opérateur syndical:
La déclaration CTE suivante montre l'utilisation de l'opérateur syndical dans la déclaration CTE. La sortie affichera les valeurs de nom d'utilisateur depuis utilisateurs table où le statut La valeur est 'Inactif'Et les autres valeurs de nom d'utilisateur depuis users_profile tableau.
Avec cte_users comme (La sortie suivante apparaîtra après avoir exécuté l'instruction.
Utilisation de CTE simple avec jointure de gauche:
L'instruction CTE suivante montre l'utilisation de la jointure de gauche dans CTE. La sortie affichera les valeurs de nom et e-mail champs de users_profile table en appliquant une jointure de gauche en fonction de nom d'utilisateur champ entre utilisateurs et users_profile tableaux et où la condition, qui filtrera ces enregistrements utilisateurs table où la valeur de statut est 'Inactif'.
Avec cte_users comme (La sortie suivante apparaîtra après avoir exécuté l'instruction.
Conclusion:
Si vous souhaitez augmenter les performances de la requête et obtenir la sortie de la requête plus rapidement, le CTE est la meilleure option que les autres options MySQL. Cet article aidera les utilisateurs de MySQL à apprendre très facilement l'utilisation du CTE pour la requête sélectionnée.