SQLの実行順序は、クエリが効率的に評価され、正確な結果を返すための基本的な流れを理解する上で重要。以下の順番でSQLクエリは実行される。
また、サブクエリや相関サブクエリを使用することで、さらに柔軟なデータ操作が可能になる。サブクエリは外側のクエリに依存せずに評価され、相関サブクエリは外側のクエリの各行に対して動的に評価される。
FROM句は、SQLクエリで最初に実行されるステートメントで、クエリがどのテーブルやビューからデータを取得するかを決定します。また、複数のテーブルを結合する際にはJOINを使って関連するテーブルを結合します。
WHERE句は、FROM句で取得したデータを特定の条件に基づいてフィルタリングします。このフィルタリングによって、特定の条件に一致する行のみが次の処理ステップに渡されます。
GROUP BY句は、データを1つ以上の列に基づいてグループ化します。この句は通常、集計関数(例: COUNT()、SUM()、AVG()など)と共に使われ、グループ化されたデータに対して集計処理を行います。
HAVING句は、GROUP BY句でグループ化されたデータに対してフィルタリングを行います。HAVINGは、WHERE句と似ていますが、HAVINGは集計関数を使ったフィルタリングをサポートします。
SELECT句は、クエリの結果に含める列を指定します。この句は、クエリの出力を決定するもので、前のステップでフィルタリングやグループ化されたデータから表示する列を選択します。
UNION句は、2つ以上のクエリ結果を結合します。UNIONは重複する行を排除して結果を返しますが、UNION ALLを使うと重複も含めて結果を返します。
ORDER BY句は、結果セットを指定した列で並べ替えます。デフォルトでは昇順(ASC)で並べ替えられますが、DESCを指定すると降順で並べ替えることもできます。
DISTINCT句は、結果セット内の重複する行を排除し、一意の結果を返します。SELECT句の後に使用します。