ホームページ >データベース >mysql チュートリアル >SQL キーワードが実行される順序は何ですか?

SQL キーワードが実行される順序は何ですか?

清浅
清浅オリジナル
2019-04-09 10:59:4414451ブラウズ

SQL キーワードが実行される順序は、最初に from ステートメントを実行し、次に where ステートメント、group by ステートメント、次に Hasting ステートメント、最後に order by ステートメントを実行します。

SQL キーワードが実行される順序は何ですか?

#【おすすめコース: MySQL チュートリアル #】

sql キーワードの実行順序

#例:

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 > ?

標準 SQL 解析順序は

# (1 ) FROM 句、さまざまなデータ ソースからデータを組み立てます

(2) WHERE 句、指定した条件に基づいてレコードをフィルタリングします

(3) GROUP BY 句、結合します データを複数のグループに分割します

(4) 集計関数を使用して計算します

##(5) HAVING 句を使用してグループをフィルタリングします

##(6) すべての式を計算します

(7) 使用しますORDER BY で結果セットを並べ替えます。


生徒の成績テーブル (暫定的に tb_Grade) で、「候補者名」の内容が一致しないレコードをグループ化します。 「候補名」に従って空にし、グループ化結果をフィルタリングして、「合計スコア」が 600 ポイントを超える

を選択します。SQL ステートメントは次のとおりです:

 select 考生姓名, max(总成绩) as max总成绩
  from tb_Grade
  where 考生姓名 is not null
  group by 考生姓名
  having max(总成绩) > 600
  order by max总成绩
上記の例では、SQL ステートメントの実行順序は次のとおりです。

(1) 最初に FROM 句を実行し、tb_Grade テーブルのデータ ソースからデータをアセンブルします

(2) WHERE 句を実行し、tb_Grade テーブル内の NULL 以外のすべてのデータをフィルタリングします。

(3) GROUP BY 句を実行し、tb_Grade テーブルを「生徒名」列でグループ化します

(4) max() 集計関数を計算し、「合計スコア」に従って合計スコアの最大値を見つけます

(5) HAVING 句を実行し、合計スコアが該当するコースをフィルタリングしますは 600 ポイントを超えています。

(6) ORDER BY 句を実行し、最終結果を「最大スコア」で並べ替えます。

概要: 上記がこの内容全体です。この記事が皆様のお役に立てば幸いです。

以上がSQL キーワードが実行される順序は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。