による画像 Freepik
SQL (Standard Query Language) は、リレーショナル データベース管理システム (RDBMS) 内でデータを管理および操作するためのプログラミング言語です。これは、企業がデータにスムーズにアクセスできるようにするために多くの企業で使用されている標準言語です。 SQL は広く使用されているため、雇用では通常、必要なスキルの 1 つとして SQL を挙げています。そのため、SQL について学ぶことが不可欠です。
SQL を学習するときによくある問題の 1 つは、主に他の人が作成したクエリを理解することです。私たちは企業内でチームとして働いており、多くの場合、SQL クエリを読んで理解する必要があります。したがって、SQL クエリを分解して理解する練習をする必要があります。
この記事では、SQL クエリを読んで理解するためのプロセスを段階的に説明します。どうやってそれを行うのでしょうか?それでは始めましょう。
SQL クエリに遭遇したときに最初に行う必要があるのは、SQL クエリの一般的な意図を理解することです。一般的な意図は、クエリの構造について完全に知っていることを意味するものではありません。それよりも全体的な流れが重要です。
一般的な SQL クエリを理解するには、標準 SQL クエリを理解する必要があります。ほとんどの SQL クエリは次で始まります。 SELECT 句の後に続けて FROM 句。そこから続けて、ほとんどの場合、クエリの後に次のものが続きます。 登録, WHERE, グループ化, ご注文は、 および HAVING 条項。
上記の句は、理解する必要がある SQL クエリの標準的なものです。各句の機能は次のとおりです。
- SELECT: テーブルからどの列を取得するか
- FROM: データがどのテーブルから取得されたのか
- 登録: 指定された識別子を持つテーブルを結合します
- WHERE:条件によるデータフィルタリング
- グループ化: 列の値に基づいてデータを整理し、集計機能を実行できるようにします。
- ORDER BY: 特定の列に基づいてデータ結果の順序を並べ替えます
- HAVING: で指定できない集計関数のフィルタ条件 WHERE
これらは標準的な句であり、一般的な SQL クエリ構造を理解する際に最初に理解する必要があるものです。サンプルコードを使用してさらに学習してみましょう。
SELECT
customers.name,
purchases.product,
SUM(price) as total_price
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
WHERE
purchases.category = 'kitchen'
GROUP BY
customers.name,
purchases.product
HAVING
total_price > 10000
ORDER BY
total_price DESC;
上記のクエリを確認するときは、標準的な句を特定してください。この句により、どのデータが選択されているかがわかります (SELECT)、どこから来たのか(FROM および 登録)、および条件 (WHERE, グループ化, ORDER BY, HAVING).
たとえば、上記のクエリを読むと、次のことが理解できます。
- 3 つの異なる種類のデータを取得しようとします。customers というテーブルからの Name、purchase というテーブルからの Product、およびテーブルの出所が特定されない別名 total_price を持つ価格列の集計です (句からの情報)。 SELECT).
- 全体的なデータは、購入の cust_id 列と顧客のテーブルの id 列を使用して結合する購入テーブルと顧客テーブルから取得されます (句からの情報) から) および 登録).
- 購入テーブルのカテゴリ列の値が「キッチン」であるデータのみを選択します (条項からの情報) WHERE),
- それぞれのテーブルから取得した名前と製品列を含む集計関数のグループ (句からの情報) グループ化),
- total_price が 10000 を超える集計関数の結果合計からもフィルタリングされます (句からの情報) HAVING)、及び
- total_price (句からの情報) に従ってデータを降順に並べます。 ORDER BY).
これは、理解し、識別する必要がある一般的な SQL クエリ構造です。そこから、高度なクエリをさらに詳しく調べることができます。次のステップに進みましょう。
非常に多くのクエリが存在する複雑なクエリに遭遇することがあります。 SELECT 句が同じクエリ内に存在します。この場合、クエリの最終結果または最終 (最初の) 結果を理解する必要があります。 SELECT クエリでわかります。重要なのは、クエリ出力がどのようなものであるかを知ることです。
以下のようなより複雑なコードを使用してみましょう。
WITH customerspending AS (
SELECT
customers.id,
SUM(purchases.price) as total_spending
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
GROUP BY
customers.id
)
SELECT
c.name,
pd.product,
pd.total_product_price,
cs.total_spending
FROM
(
SELECT
purchases.cust_id,
purchases.product,
SUM(purchases.price) as total_product_price
FROM
purchases
WHERE
purchases.category = 'kitchen'
GROUP BY
purchases.cust_id,
purchases.product
HAVING
SUM(purchases.price) > 10000
) AS pd
JOIN customers c ON pd.cust_id = c.id
JOIN customerspending cs ON c.id = cs.id
ORDER BY
pd.total_product_price DESC;
クエリはさらに複雑で長くなったように見えますが、最初は最後のクエリに重点を置く必要があります。 選択する、 これは、顧客の合計支出と購入履歴を生成しようとしているようです。最終結果がどうなるかを評価し、そこから細分化してみてください。
クエリから結果が得られるはずであるという洞察が得られます。次の部分は、決勝戦の条件を確認することです。 SELECT は。条件節には以下が含まれます。 WHERE, グループ化, ORDER BY, HAVING 全体的なデータ結果を制御するものでした。
クエリの条件を読んで理解しようとすると、クエリの最終結果をよりよく理解できるようになります。たとえば、前の SQL クエリでは、最終条件は ORDER BY。これは、最終結果が製品の合計価格の降順に並べられることを意味します。
最終条件を知ることは、クエリの重要な部分と全体的なクエリの意図を理解するのに役立ちます。
最後に、データの出所を理解する必要があります。選択するデータとその取得条件がわかったら、ソースを理解する必要があります。最終 登録 句を使用すると、テーブルがどのように相互作用し、データ フローが行われるかを理解できるようになります。
たとえば、前の複雑なクエリは、結合を 2 回実行したことを示しています。これは、最終結果を得るために少なくとも 3 つのデータ ソースを使用したことを意味します。この情報は、特にデータ ソースがサブクエリから取得される場合、各データ ソースがどのように取得されるかをさらに理解するために、後の手順で必要になります。
最終結果がどうあるべきか、そしてそれがどこから来たのかを理解した後、詳細を詳しく見る必要があります。ここから、各サブクエリを遡って、サブクエリがそのように構造化されている理由を理解します。
ただし、私たちはそれらをトップダウン構造で見ようとはしません。代わりに、最終結果に近いサブクエリを調べて、最終結果から最も遠いサブクエリに移動する必要があります。上記のコード例から、まずこのコードを理解する必要があります。
SELECT
purchases.cust_id,
purchases.product,
SUM(purchases.price) as total_product_price
FROM
purchases
WHERE
purchases.category = 'kitchen'
GROUP BY
purchases.cust_id,
purchases.product
HAVING
SUM(purchases.price) > 10000
次に、次の最も遠いコードに移動します。
WITH customerspending AS (
SELECT
customers.id,
SUM(purchases.price) as total_spending
FROM
purchases
JOIN customers ON purchases.cust_id = customers.id
GROUP BY
customers.id
)
各サブクエリを結果に近いものから最も遠いものまで分解すると、作成者の思考プロセスを明確に追跡できます。
各サブクエリを理解するのに助けが必要な場合は、上記のプロセスを繰り返してみてください。ある程度の練習を積めば、クエリを読んで理解することがより容易になるでしょう。
SQL クエリを読んで理解することは、どの企業でも SQL クエリを扱っているため、現代では誰もが身に付けておくべきスキルです。次のステップバイステップ ガイドを使用すると、複雑な SQL クエリをよりよく理解できるようになります。手順には次のものが含まれます。
- 一般的な SQL クエリ構造を理解する
- 最終選択を理解する
- 最終条件条項を理解する
- 最終結合を理解する
- 逆順の読み取りと繰り返し
コーネリアス・ユダ・ウィジャヤ は、データ サイエンス アシスタント マネージャー兼データ ライターです。 Allianz Indonesia でフルタイムで働いている間、彼はソーシャル メディアやライティング メディアを通じて Python とデータのヒントを共有するのが大好きです。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- PlatoData.Network 垂直生成 Ai。 自分自身に力を与えましょう。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- プラトンESG。 カーボン、 クリーンテック、 エネルギー、 環境、 太陽、 廃棄物管理。 こちらからアクセスしてください。
- プラトンヘルス。 バイオテクノロジーと臨床試験のインテリジェンス。 こちらからアクセスしてください。
- 情報源: https://www.kdnuggets.com/a-step-by-step-guide-to-reading-and-understanding-sql-queries?utm_source=rss&utm_medium=rss&utm_campaign=a-step-by-step-guide-to-reading-and-understanding-sql-queries
- :は
- :not
- :どこ
- $UP
- 12
- 17
- 9
- a
- 私たちについて
- 上記の.
- アクセス
- 従った
- 高度な
- 後
- 凝集
- アリアンツ
- 許す
- an
- および
- 別の
- です
- 記事
- AS
- 評価する
- アシスタント
- At
- 著者
- ベース
- BE
- なぜなら
- 開始
- 以下
- より良いです
- ブレーク
- ビジネス
- 焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。
- by
- 呼ばれます
- 来ました
- 缶
- 場合
- カテゴリー
- はっきりと
- クローザー
- コード
- コラム
- コラム
- 組み合わせる
- 来ます
- 来ます
- 到来
- コマンドと
- 企業
- 会社
- 複雑な
- 条件
- 条件
- 連続
- 制御
- cs
- 顧客
- Customers
- データ
- データサイエンス
- データベース
- 特価
- 細部
- 異なります
- do
- そうではありません
- ドント
- ダウン
- 各
- 雇用
- 出会い
- 遭遇
- 完全に
- 時代
- 特に
- 本質的な
- あらゆる
- 誰も
- 例
- 存在する
- 体験
- 探る
- filter
- ファイナル
- もう完成させ、ワークスペースに掲示しましたか?
- 名
- フロー
- 流れ
- フォーカス
- 続いて
- フォロー中
- から
- function
- 機能
- さらに
- 取得する
- 与える
- グループ
- ガイド
- 持ってる
- 持って
- he
- 助けます
- こちら
- history
- 認定条件
- HTTPS
- ID
- 識別子
- 識別する
- if
- in
- include
- 含めて
- インドネシア
- 情報
- 初期
- 洞察力
- を取得する必要がある者
- 意図
- 対話
- に
- IT
- join
- JPG
- KDナゲット
- キー
- 種類
- 知っている
- 言語
- 後で
- LEARN
- 学習
- 最低
- ような
- より長いです
- 見て
- で
- 主に
- 管理
- マネジメントシステム
- マネージャー
- 管理する
- 操作する
- 多くの
- 意味する
- 手段
- メディア
- モダン
- 他には?
- 最も
- 移動する
- 名
- 必要
- 必要
- 次の
- 今
- of
- 頻繁に
- on
- ONE
- もの
- の
- or
- 注文
- 私たちの
- 出力
- 全体
- 部
- のワークプ
- 実行
- 人
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- 練習
- 前
- ブランド
- 問題
- プロセス
- 作り出す
- プロダクト
- プログラミング
- 提供します
- 購入
- 購入
- Python
- クエリ
- クエリー
- 読む
- リーディング
- 繰り返す
- それらの
- 結果
- 逆
- s
- 同じ
- 科学
- と思われる
- select
- 選択
- シェアする
- すべき
- 作品
- 重要
- 技能
- スキル
- スムーズに
- So
- 社会
- ソーシャルメディア
- 一部
- ソース
- ソース
- 特定の
- 指定の
- 支出
- SQL
- 標準
- start
- 手順
- ステップ
- 構造
- 構造化された
- 構造
- 合計
- テーブル
- 撮影
- チーム
- より
- それ
- ソース
- アプリ環境に合わせて
- それら
- そこ。
- 彼ら
- もの
- この
- 考え
- 三
- 介して
- 時間
- ヒント
- 〜へ
- 一緒に
- トータル
- 追跡する
- 試します
- Twice
- わかる
- 理解する
- us
- つかいます
- 中古
- 通常
- 値
- 、
- 歩く
- 望んでいる
- we
- WELL
- この試験は
- いつ
- which
- while
- なぜ
- 広く
- 意志
- 以内
- 仕事
- ワーキング
- でしょう
- 与えるだろう
- 作家
- 書き込み
- 貴社
- ゼファーネット