SQL サブクエリは、あるクエリを別のクエリ内に埋め込むことを可能にする貴重な機能で、複雑な方法でのデータの取得と操作の重要性を高めます。これは、後で外部クエリで使用される一時テーブルまたは中間結果を設定するために使用されます。
FROM句のサブクエリ
FROM 句を使用して、SQL でサブクエリ式を指定できます。サブクエリによって生成されたリレーションは、その後の操作で外側のクエリが適用される新しいリレーションとして使用されます。のサブクエリFROM句は、物理テーブルに存在しない一時データセットを作成する必要がある場合に使用されます。これは、複雑なデータセットを操作する場合に非常に役立ちます。
cmからフィートとインチ
外側のクエリの FROM 句で参照されるテーブルの相関変数は、FROM 句のサブクエリ内で直接使用することはできません。以下に、さまざまなシナリオで使用される FROM 句でサブクエリを使用する 2 つの構文を示します。
1. の単純なサブクエリFROM句:
SELECT 列 1 列 2
FROM (SELECT 列_x AS C1 列_y FROM テーブル WHERE 条件) AS サブクエリテーブル
WHERE 外部条件;
2. サブクエリFROMとの条項JOIN:
SELECT 列 1 列 2
リスト.ソートJavaFROM (SELECT 列_x AS C1 列_y FROM テーブル WHERE PREDICATE_X) AS テーブル2
JOIN table1 ON table2.some_column = table1.some_column
WHERE 述語;
パラメータ:
- サブクエリ : 括弧で囲まれた内部クエリ。一時テーブルとして機能するデータを取得します。
- エイリアス : サブクエリにはエイリアスを指定する必要があります (
subquery_table) 外部クエリで参照されます。 - 外部クエリ : 外部クエリは、サブクエリによって作成されたこの一時テーブルを操作して、フィルタを適用したり、さらなる操作を実行したりできます。
FROM 句のサブクエリの仕組み
- サブクエリの評価 : from 句内のサブクエリが最初に評価され、次に評価結果が新しい一時リレーションに格納されます。
- 外部クエリ : サブクエリが実行されてデータセットが返された後、外部クエリが評価され、外部クエリの where 句の述語を満たす一時リレーションからタプルのみが選択されます。
FROM句でのサブクエリの使用例
FROM 句のサブクエリが実際にどのように機能するかを理解するために、実際の例をいくつか取り上げてみましょう。ここにはテーブルが 2 つあります インストラクター 給与や部門など、講師に関する情報が含まれるテーブル。もう一つは、 部門 部門の予算など、さまざまな部門に関する情報が含まれるテーブル。
例外スローJava
インストラクター テーブル
| 講師ID | 名前 | 部門 | 給料 |
|---|---|---|---|
| 44547 | スミス | コンピュータサイエンス | 95000 |
| 44541 | 請求書 | 電気 | 55000 |
| 47778 | 一人で | 人文科学 | 44000 |
| 48147 | エリック | 機械式 | 80000 |
| 411547 | バーム | 情報技術 | 65000 |
| 48898 | イエナ | 民事 | 50000 |
部門 テーブル
| 部署名 | 予算 |
|---|---|
| コンピュータサイエンス | 100000 |
| 電気 | 80000 |
| 人文科学 | 50000 |
| 機械式 | 40000 |
| 情報技術 | 90000 |
| 民事 | 60000 |
例 1: すべての学部の平均予算よりも給与が高い教授をすべて検索します。
この例では、FROM 句のサブクエリを使用してすべての部門の平均予算を計算し、講師の給与と比較します。
クエリ:
SELECT I.InstructorID I.Name I.Department I.Salary
FROM (SELECT AVG(Budget) AS averageBudget FROM Department) AS BUDGET
Instructor AS I
WHERE I.Salary > BUDGET.averageBudget;
出力
| 講師ID | 名前 | 部門 | 給料 |
|---|---|---|---|
| 44547 | スミス | コンピュータサイエンス | 95000 |
| 48147 | エリック | 機械式 | 80000 |
説明:
rrアルゴリズム
- 部門関係から全部門の平均予算は 70000 です。
- Erik と Smith は、インストラクター リレーション内で給与が 70000 を超える唯一のインストラクターなので、出力リレーションに存在します。
FROM 句でサブクエリを使用する理由
FROM 句でサブクエリを使用すると、以下に示すさまざまな利点があります。
- 簡略化 : 複雑なクエリを、より管理しやすい小さな部分に分割することで、簡素化できます。データベース内に一時テーブルを明示的に作成する必要はありません。
- 可読性の向上 : FROM 句でサブクエリを使用すると、クエリが分割されるため読みやすくなります。> 柔軟性 : サブクエリを使用すると、中間テーブルを作成することなく、他のデータセットに関する集計やフィルタリングなど、不便になる操作を実行できます。
結論
FROM 句のサブクエリにより、次の定義が可能になります。 一時的な結果セット これは外部クエリで利用される可能性があります。これらにより、複雑な SQL 操作が容易になり、クエリの可読性が向上し、データのフィルタリングと集計に柔軟性が提供されます。 FROM 句内でサブクエリを利用する方法を知ることは、すべての SQL 実践者にとって、特に複雑なデータベースを扱う場合、または複雑なデータ分析を実行する必要がある場合の基本的なスキルです。
クイズの作成