Dans MySQL, "with as" est également appelé une sous-requête, qui est utilisée pour définir un fragment SQL, et le fragment sera utilisé à plusieurs reprises par l'ensemble de l'instruction SQL. Ce fragment SQL est équivalent à une table temporaire publique, et la syntaxe est "avec tmp as (instruction de requête)".
L'environnement d'exploitation de ce tutoriel : système windows10, version mysql8.0.22, ordinateur Dell G3.
Quelle est l'utilisation de with as dans MySQL ?
WITH AS, également appelée factorisation de sous-requête, peut définir un fragment SQL qui sera utilisé par l'intégralité de l'instruction SQL. Il peut rendre l'instruction SQL plus lisible ou être utilisé comme partie fournissant des données dans différentes parties d'UNION ALL.
Pour UNION ALL, utilisez WITH AS pour définir une instruction UNION ALL Lorsque le fragment est appelé plus de 2 fois, l'optimiseur placera automatiquement les données obtenues par la phrase WITH AS dans une table Temp. L'invite "meterize" force les données de la phrase WITH AS à être placées dans une table temporaire globale. De nombreuses requêtes peuvent être accélérées de cette façon.
Étant donné que la sous-requête with as n'est exécutée qu'une seule fois et que les résultats sont stockés dans la table temporaire de l'utilisateur pour améliorer les performances des requêtes, elle convient aux scénarios avec plusieurs références, tels que les statistiques de rapports complexes, les requêtes de pagination et la nécessité d'obtenir une somme, count, les résultats tels que avg sont utilisés comme conditions de filtrage pour effectuer un traitement secondaire sur les résultats de la requête !
Particulièrement utile pour tous les syndicats. Parce que chaque partie de l'union peut être la même, mais si chaque partie est exécutée une fois, le coût est trop élevé
Syntaxe commune
– pour un alias
with tmp as (select * from tb_name)
– pour plusieurs alias
with tmp as (select * from tb_name), tmp2 as (select * from tb_name2), tmp3 as (select * from tb_name3), …
– équivalent à la construction Créer un e table temporaire
with e as (select * from scott.emp e where e.empno=7499) select * from e;
– équivaut à construire une table temporaire e et d
with e as (select * from scott.emp), d as (select * from scott.dept) select * from e, d where e.deptno = d.deptno;
En fait, cela signifie mettre de nombreuses instructions SQL utilisées à plusieurs reprises avec as, donner un alias, et vous pouvez l'utiliser dans les requêtes ultérieures. , qui joue un rôle d'optimisation dans les grands lots d'instructions SQL et est clair.
Apprentissage recommandé : Tutoriel vidéo mysql
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!