Séquence d'exécution des instructions SQL
Les instructions MySQL sont divisées en 11 étapes au total, comme indiqué dans la figure ci-dessous, d'abord L'opération FROM est toujours exécutée et l'opération LIMIT est exécutée en dernier. Chaque opération générera une table virtuelle, qui sera utilisée comme entrée pour le traitement. Cependant, ces tables virtuelles sont transparentes pour l'utilisateur, mais seule la dernière table virtuelle sera renvoyée en conséquence. Si une clause n'est pas spécifiée dans l'instruction, l'étape correspondante sera ignorée.
Analysons en détail chaque étape du traitement des requêtes
FORMULAIRE : Pour le tableau de gauche et le tableau de droite de la table FROM calcule le produit cartésien. Générer la table virtuelle VT1
ON : effectuez un filtrage ON sur la table virtuelle VT1, et seules les lignes qui répondent à la
JOIN : si OUTER JOIN (comme une jointure gauche, une jointure droite) est spécifié, les lignes sans correspondance dans la table conservée seront ajoutées à la table virtuelle VT2 en tant que lignes externes, ce qui donne lieu à la table virtuelle VT3, rug from sub - Si la phrase contient plus de deux tables, alors les étapes 1 à 3 seront répétées pour le résultat VT3 généré par la connexion de jointure précédente et la table suivante jusqu'à ce que toutes les tables soient traitées
WHERE : Effectuer un filtrage de condition WHERE sur table virtuelle VT3. Seuls les enregistrements qui répondent à la
GROUP BY : regroupez les enregistrements dans VT4 en fonction des colonnes de la clause group by pour générer VT5.
CUBE | ROLLUP : effectuez des opérations de cube ou de cumul sur la table VT5 pour générer la table VT6.
HAVING : appliquez le filtre "have" à la table virtuelle VT6. Seuls les enregistrements qui répondent à la
SELECT : effectuez une opération de sélection, sélectionnez la colonne spécifiée et insérez-la dans la table virtuelle VT8.
DISTINCT : enregistrements dédupliqués dans VT8. Générez la table virtuelle VT9.
ORDER BY : Triez les enregistrements de la table virtuelle VT9 selon
LIMIT : Supprimez les enregistrements de la ligne spécifiée et génère la table virtuelle VT11 et renvoie le résultat.
Ordre d'écriture : sélectionner... à partir de... où.... grouper par... avoir... trier par.. limite [décalage,]
(lignes)
Ordre d'exécution : à partir de... où...grouper par... avoir.... sélectionner... commander par... limite
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!