Maison > base de données > SQL > le corps du texte

Quel est l'ordre d'exécution de SQL ?

silencement
Libérer: 2019-06-17 15:20:50
original
29511 Les gens l'ont consulté

Quel est l'ordre d'exécution de SQL ?

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 seront insérés dans la table virtuelle VT4.

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 pour générer la table virtuelle VT10.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal