SQLの実行順序

SQLの実行順序について調べたことを書き連ねます。
なお、SQL = クエリという風にして記述していますが、厳密には違うみたいです。

  • FROM句 : SQLがデータを取得する対象のテーブルやビューを指定する。SQLが対象とするデータの基礎となるものを決定する。
  • JOIN句: 複数のテーブルを結合する。これにより、異なるテーブル間で関連するデータが結合され、クエリの結果に反映される。
  • WHERE句 : FROM句で指定されたテーブルやビューから条件に合致する行をフィルタリングする。
  • GROUP BY句 : グループ化するカラムが指定する。GROUP BY句で指定された列に基づいて、結果セットがグループに分割される。また、集約関数(SUM、COUNT、AVGなど)があれば、それぞれのグループに対して適用する。
  • HAVING句 : GROUP BY句でグループ化された結果に対する条件を指定する。WHERE句と同様に条件に合致する行のみが結果に含まれるが、HAVING句はそれぞれのグループに対して条件を適用する。
  • SELECT句 : 抽出する列を指定する。ここで指定された列が結果セットに表示される。
  • DISTINCT句:結果セットから重複する行が削除される。これにより、結果セット内の重複が除去される。
  • ORDER BY句 : 結果の並び順を指定する。デフォルトでは昇順となるが、必要に応じて降順にすることもできる。
  • LIMIT句 : 結果セットの行数を制限する。指定された数の行のみが最終的な結果に含まれるようになる。

調べて出てくるページは記述方法くらいしか違いがなさそうな感じで記載されているところが多かったので、GROUP BY句とDISTINCT句の違いに驚きました。
また、”UNION句”や”WITH句”などは使用頻度が(個人的に)低いので記載していません。