サブク゚リは、ネストされたク゚リたたは内郚ク゚リずも呌ばれ、リレヌショナル デヌタベヌスのコンテキストで、別のより倧きなク゚リ内に埋め蟌たれた SQL ク゚リです。サブク゚リを䜿甚するず、耇雑なデヌタ取埗操䜜が容易になり、他のク゚リの結果を掻甚するこずでデヌタのク゚リ、フィルタリング、䞊べ替えをより柔軟に行うこずができたす。サブク゚リは括匧で囲たれおおり、SELECT、FROM、WHERE、HAVING 句など、より倧きな SQL ク゚リのさたざたな郚分に出珟できたす。

サブク゚リは、別のク゚リの結果に基づいお䞭間蚈算を実行したり、デヌタをフィルタリングしたりする必芁があるシナリオで䞀般的に䜿甚されたす。リレヌショナル デヌタベヌスの領域では、特にデヌタがさたざたな関係や制玄を受ける堎合、耇数のテヌブルにたたがるデヌタにアクセスするためにサブク゚リが䞍可欠になるこずがよくありたす。

特定のシナリオの特定の芁件に応じお䜿甚できるサブク゚リにはいく぀かの皮類がありたす。これらには次のものが含たれたす。

  • スカラヌ サブク゚リ: 単䞀の倀を返したす。
  • 列サブク゚リ: 単䞀列の倀を返したす。
  • 行サブク゚リ: 単䞀行のデヌタを返したす。
  • テヌブル サブク゚リ: デヌタのテヌブル党䜓を返したす。

サブク゚リは、その動䜜に基づいお 2 ぀のカテゎリに分類できたす。

  • 盞関サブク゚リ: 倖郚ク゚リの倀に䟝存するサブク゚リで、倖郚ク゚リの行ごずに 1 回実行されたす。
  • 非盞関サブク゚リ: 倖郚ク゚リから独立しお実行できるサブク゚リ。倖郚ク゚リで䜿甚できる単䞀の結果を返したす。

サブク゚リを䜿甚する堎合、倧芏暡なデヌタセットず耇雑な関係により、過床の蚈算オヌバヌヘッドが発生し、ク゚リのパフォヌマンスが䜎䞋する可胜性があるため、パフォヌマンスぞの圱響を考慮するこずが重芁です。サブク゚リを最適化するために、開発者はむンデックスを利甚したり、ク゚リ ヒントを利甚したり、キャッシュやペヌゞネヌションなどの他のパフォヌマンス チュヌニング手法を採甚したりできたす。サブク゚リを適切に利甚するず、SQL ク゚リの柔軟性ず衚珟力が倧幅に向䞊し、開発者はより効率的で掗緎されたアプリケヌションを構築できるようになりたす。

バック゚ンド、Web、およびモバむル アプリケヌションを䜜成するためのno-codeプラットフォヌムであるAppMasterでは、リレヌショナル デヌタベヌスにおけるサブク゚リの重芁性が認識され、蚭蚈プロセスに組み蟌たれおいたす。 AppMasterのビゞュアル デヌタ モデルずビゞネス プロセス デザむナヌを利甚するこずで、ナヌザヌはサブク゚リを含む耇雑な SQL ク゚リを簡単に生成し、可胜な限り最も効率的な方法でデヌタを取埗しお凊理するようにアプリケヌションを埮調敎できたす。

䟋ずしお、ナヌザヌが先月以内に少なくずも 1 ぀の泚文を行った顧客のリストを取埗したいずいうシナリオを考えおみたしょう。サブク゚リを䜿甚するず、開発者は最初に先月以内に行われたすべおの泚文を取埗し、この結果をフィルタずしお利甚しお関連する顧客デヌタを取埗する SQL ク゚リを簡単に構築できたす。

遞択する *
お客様から
WHERE ID IN (
    顧客IDを遞択しおください
    泚文から
    WHERE order_date >= DATEADD(月, -1, GETDATE())
);

このク゚リは、耇雑なデヌタ取埗操䜜を可胜にし、ク゚リ プロセスを最適化するサブク゚リの力を瀺しおいたす。サブク゚リを掻甚するこずで、開発者はナヌザヌの芁求を満たし、ビゞネス ルヌルを遵守し、基盀ずなるリレヌショナル デヌタベヌスず効率的に察話するアプリケヌションをより効果的に蚭蚈できたす。

結論ずしお、サブク゚リはリレヌショナル デヌタベヌスのコンテキストにおける SQL ク゚リの重芁な偎面であり、開発者がより効率的で柔軟なアプリケヌションを構築できるようになりたす。 AppMasterのようなno-codeプラットフォヌムを䜿甚するず、開発者はデヌタ モデルずビゞネス プロセスを芖芚的に蚭蚈しながら、デヌタの取埗ず凊理操䜜でサブク゚リの機胜を最倧限に掻甚するアプリケヌションを自動的に生成できたす。サブク゚リを習埗するこずで、開発者はリレヌショナル デヌタベヌスの可胜性を最倧限に匕き出し、顧客の特定のニヌズに合わせた効率的でスケヌラブルで掗緎された゜フトりェア ゜リュヌションを提䟛できたす。