SQL
 Computer >> コンピューター >  >> プログラミング >> SQL

SQLサブクエリ:完全ガイド

SQLサブクエリは、別のクエリ内のクエリです。これは、SQLステートメントのWHERE句またはHAVING句で使用されます。サブクエリを使用すると、あるクエリの結果を別のクエリの引数として指定できます。

SQLを作成する場合 クエリでは、別のクエリの結果に基づいてパラメータを指定することもできます。たとえば、顧客のリストがあるとします。特定の金額を超える価値のある注文を行った顧客のリストを取得することをお勧めします。注文情報と顧客情報は別のテーブルに保存されます。

ここで、SQLサブクエリ 操作が入ります。サブクエリ 、ネストされたクエリとも呼ばれ、 SELECT WHERE内のクエリ 別のSQLの句 クエリ。メインのSQL 次に、クエリはサブクエリの結果を使用します。

このチュートリアルでは、いくつかの例を参照して、SQLでサブクエリを使用する方法について説明します。

SQLサブクエリ:ガイド

SQLサブクエリは、別のクエリ内のクエリです。これらは、別のクエリの結果に依存するクエリを実行するために使用されます。サブクエリを使用すると、2つの個別のクエリを記述して結果をコピーして貼り付けることなく、これを行うことができます。サブクエリはWHERE句またはHAVING句に表示されます。

SQLSELECTステートメントのサブクエリの構文は次のとおりです。

SELECT name
FROM products
WHERE supplier_id
IN (SELECT id FROM suppliers WHERE local = True);

このクエリは、地元企業が提供するすべての製品の名前を選択します。 SQLINステートメントへの入力としてサブクエリを使用します。 SQL INステートメントは、サブクエリの結果にsupplier_idが含まれる「products」テーブルからすべてのレコードを返します。

INSERT、UPDATE、およびDELETEステートメントでサブクエリを使用できます。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

サブクエリは括弧内に表示する必要があります。これにより、サブクエリの内部が別のサブクエリと区別されます。

サブクエリで関連するデータを選択していることを確認する必要があります。上記のサブクエリでは、 idを選択しました サプライヤーから テーブル。別の列を選択した場合、クエリは機能しません。これは、メインクエリがサプライヤIDに依存しているためです。

SQLサブクエリの例:SELECT

優等生の学生のリストを取得したい場合は、サブクエリを使用できます。 。これは、優等生の情報が別のテーブルにあることを前提としています。

例を使用して、SQLサブクエリがどのように行われるかを説明しましょう。 仕事。次のクエリは、200ドルを超える注文を行ったすべての顧客のリストを返します。

SELECT * FROM customers
WHERE id IN (SELECT DISTINCT customer_id FROM orders
		WHERE cost > 200);

サブクエリ 次を返します:

名前 メール アドレス loyalty_plan id
ケイティ katy.l@gmail.com カリフォルニア州マウンテンビュー なし 4
ジョン john.p@outlook.com マサチューセッツ州ボストン なし 1

(2行)

最初の行では、顧客からすべての列を選択します テーブル。次に、顧客IDがサブクエリにある顧客のみを取得するように指定します。 。 サブクエリ 注文からすべての一意の顧客IDを選択します アイテムの価格が200ドルを超えるテーブル。これらの条件に一致するレコードには、結果にそれらの顧客が含まれます。

SQLサブクエリ:INSERT

200ドルを超える購入を行った顧客のすべてのレコードを、high_value_customers。というテーブルに挿入します。 これを行うには、SQLサブクエリとSQLINSERTコマンドを使用できます。

INSERT INTO high_value_customers
SELECT * FROM customers
WHERE id IN (SELECT DISTINCT customer_id FROM orders
		WHERE cost > 200);

high_value_customersにクエリを実行すると 表を見ると、価値の高いすべての顧客を1つの表にまとめることができます。

名前 メール アドレス loyalty_plan id
ケイティ katy.l@gmail.com カリフォルニア州マウンテンビュー ゴールド 4
ジョン john.p@outlook.com マサチューセッツ州ボストン なし 1

(2行)

SQLサブクエリ:更新

サブクエリを使用できます テーブル内のデータを更新します。たとえば、高額の購入を行ったすべての顧客のロイヤルティプランをブロンズに更新するとします。 。次のクエリを使用して、その操作を実行できます。

UPDATE customers
SET loyalty_plan = 'High Value'
WHERE id IN (SELECT DISTINCT customer_id FROM orders
		WHERE cost > 200);

顧客に問い合わせるとき 表を見ると、2つの高価値の忠誠心が計画されていることがわかります。 顧客が更新されました:

名前 メール アドレス loyalty_plan id
ケイティ katy.l@gmail.com カリフォルニア州マウンテンビュー 高い価値 4
ジョン john.p@outlook.com マサチューセッツ州ボストン 高い価値 1

(2行)

SQLサブクエリ:DELETE

サブクエリを使用できます SQL DELETEステートメントを使用して、テーブル内の個々の行または複数の行を削除します。

データベース内の新しいテーブルに移動した、価値の高い顧客の注文を削除するコマンドを作成しましょう。これを行うには、サブクエリに依存する必要があります:

DELETE FROM orders
WHERE customer_id IN (SELECT id FROM customers
WHERE loyalty_plan = 'High Value');

価値の高い顧客からのすべての注文が削除されたことがわかります。ネストされたサブクエリは次を返します:

id item_name コスト customer_id
5 オークチェア 100 3

(1行)

結論

SQLサブクエリは、別のクエリ内のクエリです。サブクエリを使用すると、あるクエリの結果を別のクエリの結果に依存させることができます。サブクエリは、SQLステートメントのHAVING句またはWHERE句で指定されます。

サブクエリ 別のクエリの結果に依存するクエリを簡単に実行できるようにします。このガイドでは、サブクエリの記述方法について説明しました。 SQL サーバ。 SELECTでサブクエリを使用する方法についても説明しました 、挿入更新 、および DELETE SQL ステートメント。

SQLでのコーディングについてもっと知りたいですか? SQLの学習方法ガイドをご覧ください。このガイドには、SQLの学習に関する専門家のアドバイスが含まれています。また、学習の旅を続けるのに役立つトップコースのリストもあります。


  1. Fortniteシステム要件の完全ガイド

    Fortniteは最近多くの人気を得ています。しかし最近、多くの人が「PCで実行できますか」という質問を投げかけました。 」および「このバトルロワイヤルゲームを実行するのに十分な互換性がある場合 」。通常、他の一般的なプログラムと比較して、ゲームにはRAM、プロセッサ、ビデオカード、 DirectXの要件が高くなります。 、など。 コンテンツ: Fortnite Minimal Specsとは何ですか? Fortniteの推奨PC要件は何ですか? MacでのFortniteシステム要件は何ですか? ボーナスのヒント:すべてのゲームドライバーとコンポーネントを更新し

  2. 完全ガイド:Fitbit Pay

    Fitbit は、利用可能な最高のスマート ウェアラブルの 1 つです。多くのモデルがあり、多くの機能を備えています。 Fitbit の有名な機能の 1 つに Fitbit Pay があります。 Fitbit Ionic と Fitbit Versa の近距離無線通信チップを使用すると、非接触型決済を利用できるあらゆる店舗で支払うことができます。 この投稿では、Fitbit Pay の使用方法を理解するのに役立つ完全なガイドを掲載しています。 Fitbit Pay とは? Fitbit Pay は、Fitbit Ionic および Versa にデビット カードまたはクレジット カードを追