ホームページ > データベース > mysql チュートリアル > SQL サブクエリの理解: 例を含む完全ガイド

SQL サブクエリの理解: 例を含む完全ガイド

Linda Hamilton
リリース: 2024-12-27 01:18:12
オリジナル
336 人が閲覧しました

Understanding SQL Subqueries: A Complete Guide with Examples

SQL のサブクエリとは何ですか?

サブクエリ は、内部クエリ または ネストされたクエリ とも呼ばれ、別の SQL クエリ内のクエリです。これは括弧で囲まれており、外側のクエリがその後の処理に使用する結果を提供するために最初に実行されます。


サブクエリの種類

  1. 単一行サブクエリ
    • 結果として 1 行を返します。
    • =、<、> などの比較演算子とともによく使用されます。

:

最も給与が高い従業員の名前を見つけます:

   SELECT Name
   FROM Employees
   WHERE Salary = (SELECT MAX(Salary) FROM Employees);
ログイン後にコピー
ログイン後にコピー
  1. 複数行サブクエリ
    • 結果として複数の行を返します。
    • IN、ANY、ALL などの演算子とともに使用されます。

:

5 人以上のメンバーがいる部門で働く従業員を検索します:

   SELECT Name
   FROM Employees
   WHERE DepartmentID IN (SELECT DepartmentID FROM Departments WHERE Members > 5);
ログイン後にコピー
ログイン後にコピー
  1. 相関サブクエリ
    • 外部クエリから列を参照します。
    • 外側のクエリの行ごとに繰り返し実行されます。

:

自分の部門の平均給与よりも高い収入を得ている従業員を見つけます:

   SELECT Name, Salary
   FROM Employees E
   WHERE Salary > (SELECT AVG(Salary) FROM Employees WHERE DepartmentID = E.DepartmentID);
ログイン後にコピー
ログイン後にコピー
  1. ネストされたサブクエリ
    • その中に別のサブクエリが含まれています。

:

従業員の平均給与が 50,000 ドルを超える部門を検索します:

   SELECT Name
   FROM Employees
   WHERE Salary = (SELECT MAX(Salary) FROM Employees);
ログイン後にコピー
ログイン後にコピー

サブクエリの使用例

  1. データのフィルタリング: サブクエリを使用して、特定の基準に基づいて行をフィルタリングします。
   SELECT Name
   FROM Employees
   WHERE DepartmentID IN (SELECT DepartmentID FROM Departments WHERE Members > 5);
ログイン後にコピー
ログイン後にコピー
  1. データの比較: サブクエリを使用してテーブル間のデータを比較します。
   SELECT Name, Salary
   FROM Employees E
   WHERE Salary > (SELECT AVG(Salary) FROM Employees WHERE DepartmentID = E.DepartmentID);
ログイン後にコピー
ログイン後にコピー
  1. データ集約: クエリをネストして高度な集計を実行します。
   SELECT DepartmentName
   FROM Departments
   WHERE DepartmentID IN (
       SELECT DepartmentID
       FROM Employees
       WHERE Salary > (SELECT AVG(Salary) FROM Employees)
   );
ログイン後にコピー
  1. 動的更新: サブクエリに基づいて行を動的に更新または削除します。
   SELECT * FROM Products WHERE Price > (SELECT AVG(Price) FROM Products);
ログイン後にコピー

サブクエリの利点

  1. モジュール性: 複雑なクエリを、より小さく管理しやすい部分に分割します。
  2. 可読性: 多くの場合、クエリ ロジックがより明確になります。
  3. 柔軟性: SELECT、WHERE、FROM、および HAVING 句で使用できます。

制限事項

  1. パフォーマンス: サブクエリ、特に相関関係のあるサブクエリは、複数回実行されると遅くなる可能性があります。
  2. 複雑さ: 深くネストされたサブクエリは、読み取りやデバッグが困難になる可能性があります。
  3. 最適化の課題: 結合を使用すると、同じ結果をより効率的に達成できる場合があります。

結論

サブクエリは、複雑なロジックを管理可能な部分に分割し、動的なデータ分析を可能にし、データ操作を容易にする SQL の強力なツールです。ただし、クエリのパフォーマンスを最適化するには、サブクエリと結合などの代替手段をいつ使用するかを理解することが重要です。

以上がSQL サブクエリの理解: 例を含む完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート