-
サブクエリの利点:
- 再利用性: サブクエリは独立して実行できるため、複数のクエリで再利用することができます。
- ネスト: サブクエリは他のサブクエリの中にネストすることができ、複雑なクエリを作成することができます。
- データの制約: サブクエリを使用することで、データの取得や更新に制約をかけることができます。
-
サブクエリの種類:
- スカラーサブクエリ: 1つの値を返すクエリです。例えば、特定の条件を満たすレコードの数を取得する場合などに使用します。
- インラインビュー: クエリ内でテーブルのように振る舞う仮想のテーブルです。主クエリ内で直接参照することができます。
- 直接サブクエリ: 主クエリのFROM句やWHERE句内で使用されるサブクエリです。主クエリと結果セットを連携させることができます。
-
サブクエリの使用例:
-
フィルタリング: 特定の条件を満たすデータのみを抽出するために、サブクエリを使用することがあります。
SELECT * FROM employees WHERE department_id IN (SELECT department_id FROM departments WHERE location = 'Tokyo');
-
ソート: サブクエリを使用して、ソート条件を指定することができます。
SELECT * FROM employees ORDER BY (SELECT MAX(salary) FROM employees);
-
集計: サブクエリを使用して、データの集計や集約関数の結果を取得することができます。
SELECT department_id, AVG(salary) FROM employees GROUP BY department_id HAVING AVG(salary) > (SELECT AVG(salary) FROM employees);
-
更新: サブクエリを使用して、データの更新や削除を行うことができます。
UPDATE employees SET salary = (SELECT AVG(salary) FROM employees);
-
上記の例は、SQLにおけるサブブロックの一部です。サブクエリは、柔軟性と表現力を向上させるための強力なツールです。各種類のサブクエリを使用して、様々なデータ操作を行うことができます。