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
句の後に使用します。