LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

このチュートリアルでは、 SQL 一時テーブルビューについて説明します。これら 2 つは、テストやデバッグのために物理テーブルから特定のデータ セットを取得する場合に便利です。2 種類の一時テーブルとその違いについても説明します。

SQL 一時テーブルとビューを使用すると、データはすでに別のテーブルに格納されているため、繰り返しクエリを実行することなく、複数のコマンドを使用してデータ セットを自由に操作できます。

これら 2 つは同様に機能しますが、違いに注意する必要があります。これは、特定の状況で使用できる最適な方法を決定するのに役立ちます。

名前自体に基づいて、一時テーブルはセッション内でデータを一時的に保存するために使用されます。

物理テーブルと同じように、それらに対して複数の操作を実行することもできます。非常に長い SQL コマンドがあると想像してください。これを一時テーブルに置くだけで、元のクエリに影響を与えることなくデバッグやエラーのトラブルシューティングを開始できます。さらに、一時テーブルは強力であり、SQL でよく使用されます。

目次

SQL の 2 種類の一時テーブル

SQLには2種類の一時テーブルがあります。これらはローカル一時テーブルとグローバル一時テーブルです。

ローカル一時テーブルは、それが作成されたセッションにのみ存在します。他のセッションではこのテーブルにアクセスできません。このため、ローカル一時テーブルは、作成されたセッションが閉じられると存在しなくなります。

対照的に、グローバル一時テーブルは、作成時にすべてのセッションでアクセスできます。ただし、すべてのセッションが閉じられると、セッションは存在しなくなり、アクセスできなくなります。

ローカル一時テーブルの「 # 」記号とグローバル一時テーブルの「 ## 」記号をチェックすることで、クエリで使用されている一時テーブルのタイプを簡単に識別できることに注意してください。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

ローカル一時テーブルは通常、テーブル名が「 # 」で始まります。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

一方、グローバル一時テーブルはテーブル名の前に「 ## 」で始まります。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

さらに、テーブルをすばやく作成したい場合は、例としてSELECT * INTO #customers FROM dbo.courses というコマンドを実行できます。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

このコマンドは、 dbo.coursesテーブルのすべてのデータを含む#customersという名前の新しい一時テーブルを作成します。

Microsoft SQL Server Management Studioのビュー

このサンプル コマンドを使用してSQL ビューについて説明しましょう。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

たとえば、このようなコマンドを繰り返し実行したくないとします。以下のコマンドに従って簡単にビューに配置できます。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

ビューの作成はテーブルの作成と似ています。これを使用すると、作成したビュー名を選択して入力したクエリを実行できるようになります。この場合、それはCustomersbyyear_vです。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

ビューは一時テーブルとは異なることに注意することが重要です。これは、ビューを削除しない限り、物理テーブルと同じようにデータベース内でビューが表示されるためです。さらに、ビューにはデータや値は保存されません。

代わりに、 CREATE VIEWコマンドの直後に入力したコマンドが表示されます。ビュー内で任意のテーブル操作を実行することもできます。

最も重要なことは、ビューは通常、ビュー名の先頭または末尾に「v」を付けることで表されるため、簡単に識別できることです。

SQL での一時テーブルとビューの作成

この例では、実行後にSales.SalesOrderHeaderSales.Customer Cのレコードを結合して表示するクエリがあります。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

SQL でのローカル一時テーブルの作成

200 行の長さのクエリを作成し、それに対してデバッグして特定の操作を実行する必要があると想像してください。プロセス中にさらなるエラーが発生する可能性があるため、クエリを直接編集することはできません。

その場合、前の例を使用して、 FROM コマンドの前にコマンド「 INTO #test_local 」を追加してローカル一時テーブルを作成します。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

このコマンドを実行すると、#test_local にはSales.SalesOrderHeaderSales.Customer Cの結合されたレコードが含まれるようになります。その結果、 #test_localテーブルを選択すると、次のようになります。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

その後、#test_localテーブルに対してあらゆる操作を実行できるようになります。#test_localからすべてのレコードを選択し、次のコマンドを使用してCustomerIDごとにレコードの順序を変更します。 

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

その結果、レコードは CustomerID によって並べ替えられるようになりました。ただし、ローカルの一時テーブルを使用したため、別のセッションで#test_localテーブルにアクセスしたり、使用したりすることはできません。次の例は、 SQLQuery2.sql#test_localにアクセスしようとすると何が起こるかを示しています。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

前の例に基づくと、#test_localを選択すると、エラー メッセージが表示されるだけでした。これは、#test_localテーブルがそれが作成されたセッション ( SQLQuery1.sql )にのみ存在するためです。

SQL でのグローバル一時テーブルの作成

次に、 #test_localで使用したのと同じクエリを使用します。ただし、今回はグローバルを使用します。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

ここで、##test_globalを選択し、CustomerID でレコードを並べ替えると、同じクエリを使用したため、  #test_localで得たものと同じ出力が表示されます。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

その後、別のセッションで##test_globalテーブルを選択してアクセスを試みます。グローバル一時テーブルを使用しているため、これはシームレスに機能します。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

この時点で、ローカル一時テーブルとグローバル一時テーブルの違いを強調しています。

ローカル一時テーブルは、それが作成されたセッション内でのみアクセスできることに注意してください。そのセッションを閉じると、セッションは存在しなくなります。

一方、グローバル一時テーブルは、すべてのアクティブなセッションまたはアプリケーション自体を閉じない限り、すべてのセッションに表示されます。

SQL でのビューの作成

これからビューを作成していきます。この例では、次のような既存のクエリがあります。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

CREATE VIEWコマンドをクエリに追加することで、ビューの作成を開始できます。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

コマンドを実行すると、作業中のデータベースにビューが作成されます。この場合は、 AdventureWorks2012です。

また、更新後に Views フォルダーにdbo.CustomerView_v が表示されるはずです。Views フォルダーを更新するには、それを右クリックして[更新]を選択します。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

Views フォルダーの右側にある + アイコンをクリックすると、dbo.CustomerView_vが表示されます。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

このビューを開くには、 dbo.CustomerView_vを右クリックし、オプションから[上位 1000 行の選択]を選択します。これにより、そのビューに 1000 件のレコードが表示されます。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

この後、 dbo.CustomerView_vを使用して、テーブルと同様にあらゆる操作を実行できるようになります。たとえば、dbo.CustomerView_vで SalesOrderID が 50000 より大きいレコードを選択するとします。この場合、次のコマンドを使用します。

LuckyTemplates ユーザー向けの SQL 一時テーブルとビュー

これで、作成したビューに対して操作を実行できるようになりました。

結論

要約すると、2 種類の一時テーブルとその違い、およびそれらを使用する必要がある理由について学びました。さらに、一時テーブルは、実際のクエリを損傷することなくクエリ内のエラーを修正する方法として機能することについて説明しました。

一時テーブルは、それが作成されたセッションにのみ表示されることに注意してください。したがって、アクティブなセッションまたはアプリケーション自体を閉じると、それは存在しなくなります。

また、ビューにはデータやレコードが保存されないこともわかりました。レンダリングしたいクエリに基づいた結果のみが表示されます。これらのビューは、作成されるとデータベースに保存されます。 

これら 2 つを学習すると、長いコマンドをすばやく実行しデータセットの大きな部分を簡単に変更できるようになります。

ではごきげんよう、

ハーフィズ


Python における Self とは: 実際の例

Python における Self とは: 実際の例

Python における Self とは: 実際の例

RでRDSファイルを保存してロードする方法

RでRDSファイルを保存してロードする方法

R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。

最初の N 営業日の再考 – DAX コーディング言語ソリューション

最初の N 営業日の再考 – DAX コーディング言語ソリューション

この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。

LuckyTemplates のフィルター コンテキストの概要

LuckyTemplates のフィルター コンテキストの概要

この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。

LuckyTemplates を使用したビジネス レポート

LuckyTemplates を使用したビジネス レポート

これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて