Maison  >  Article  >  base de données  >  Quel est l’ordre dans lequel les mots-clés SQL sont exécutés ?

Quel est l’ordre dans lequel les mots-clés SQL sont exécutés ?

清浅
清浅original
2019-04-09 10:59:4414349parcourir

L'ordre dans lequel les mots-clés SQL sont exécutés est le suivant : exécutez d'abord l'instruction from ; puis l'instruction Where, puis l'instruction group by ;

Quel est l’ordre dans lequel les mots-clés SQL sont exécutés ?

[Cours recommandés : Tutoriel MySQL]

Ordre d'exécution des mots clés SQL

Exemple :

select m.* from(select t.*,rownum r from
(select id,name,e.username,e.realname from departments d ,employees e where d.manager=e.username(+)
order by id desc ) t where rownum<=? ) m where r>?

select m.*(select t.*,t.rownum r from(
select a,b,c,d from table1 order by a desc
) t where rownum < = ? ) m
where r > ?

L'ordre d'analyse SQL standard est

(1) Clause FROM, rassemblez des données provenant de différentes sources de données

(2) Clause WHERE, filtrez les enregistrements en fonction de conditions spécifiées

(3) Clause GROUP BY, divisez les données en plusieurs groupes

(4) Utilisez les fonctions d'agrégation pour calculer

(5) Utilisez la clause HAVING pour filtrer les groupes

(6) Calculez toutes les expressions Formule

(7 ) utilise ORDER BY pour trier l'ensemble de résultats

Exemple

dans le tableau des notes des étudiants (appelé provisoirement tb_Grade ), regrouper les enregistrements dont le "candidat Le contenu de "nom" n'est pas vide en fonction du "nom du candidat", et filtrez les résultats de regroupement pour sélectionner

dont le "score total" est supérieur à 600 points. L'instruction SQL est :

 select 考生姓名, max(总成绩) as max总成绩
  from tb_Grade
  where 考生姓名 is not null
  group by 考生姓名
  having max(总成绩) > 600
  order by max总成绩

Dans l'exemple ci-dessus, la séquence d'exécution des instructions SQL est la suivante :

(1) Exécutez d'abord la clause FROM et assemblez les données de la source de données à partir du table tb_Grade

(2) Exécutez la clause WHERE, filtrez toutes les données de la table tb_Grade qui ne sont pas NULL

(3) Exécutez la clause GROUP BY, regroupez la table tb_Grade par le "Student Colonne Nom"

(4) Calculez la fonction d'agrégation max() et trouvez les valeurs les plus grandes dans le score total en fonction du "score total"

(5) Exécutez la clause HAVING pour filtrer le score total du cours supérieur à 600 points.

(6) Exécutez la clause ORDER BY et triez les résultats finaux par "Max Score".

Résumé : Le ci-dessus se trouve l’intégralité du contenu de cet article, j’espère qu’il aidera tout le monde.

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!

Déclaration:
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