ベストアンサー
データベース管理者とユーザーが常に直面する課題は、複雑なSQLクエリの作成とデータベースアクセスの保護です。元のテーブルに対してプロキシを使用すると、このようなクエリを簡素化するのに役立ちます。また、管理者がデータベースへの直接アクセスを制限したい場合もあります。これらの両方の状況で、ビューを使用できます。
とはビュー?
実行時にコンパイルされる仮想テーブルはビューと呼ばれます。 SQLには、ビューである特別なバージョンのテーブルがあります。 。ビューは単なるSQLステートメントであり、ビューに関連付けられたデータはビューに物理的に格納されるのではなく、ビューのベーステーブルに格納されます。テーブルのすべての行と列、またはアクセスを制限する必要がある場合はいくつかの選択された行と列のみが含まれます。ビューの作成に使用される記述されたSQLクエリに応じて、1つまたは複数のテーブルから作成できます。
ビューは、ユーザーが自然に見つけられるようにデータを構造化し、複雑なクエリを簡素化し、アクセスを制限するために使用されます。データに変換し、いくつかのテーブルのデータを要約してレポートを作成します。
ビューの管理には、次のようなさまざまな側面があります。
ビューの削除:「dropview」ステートメントを使用すると、既存のビューを削除できます。
ビューの作成:ビューは「createview」ステートメントを使用して作成できます。ビューは、マテリアライズドビュー、テーブル、またはその他のビューを参照するクエリによって定義されます。
ビューの一覧表示: SQLのすべてのビューサーバーデータベースは、システムカタログビューにクエリを実行することで一覧表示できます。
ビューの名前の変更:ビューの名前を変更できます。また、すべてのビューの名前を変更できるようにする必要があります。ビューの古い名前を参照するオブジェクトには、新しい名前を付ける必要があります。
SQLのビューの種類
システム定義ビュー
システム定義ビューは、Tempdb、Master、およびなど、SQLServerデータベースにすでに存在する事前定義されたビューです。臨時雇用者各データベースには、独自のプロパティと機能があります。システム定義ビューは、すべてのユーザー定義データベースに自動的にアタッチされます。そして、これらはデータベース、テーブル、およびデータベースとテーブルのすべてのプロパティに関する情報を提供します。システム定義ビューには、情報スキーマ、カタログビュー、動的管理ビューの3種類があります。
カタログビュー
カタログビューは、カスタム形式の情報を取得、表示、および変換するための効率的な方法を提供し、SQLサーバーで使用される情報を返すために使用されます。バックアップ、レプリケーション、メンテナンスプランなどに関する情報は含まれていません。これらのビューはデータベースのメタデータにアクセスするために使用され、名前と列名は説明的であり、ユーザーが期待される内容を照会するのに役立ちます。
動的管理ビュー
管理者は、サーバーの状態に関する情報を取得して、問題を診断し、サーバーインスタンスの状態を監視し、これらのビューを通じてパフォーマンスを調整します。サーバースコープの動的管理ビューはマスターデータベースにのみ保存されますが、データベーススコープの動的管理ビューは各データベースに保存されます。
情報スキーマ
SQLサーバーには20の異なるスキーマビューがあります。これらは、テーブル、制約、列、ビューなど、データベースの物理情報を表示するために使用されます。テーブルの特定の列に制約を使用して、その列で特定のデータルールが確実に守られるようにします。
ユーザー定義ビュー
複雑なビュー
これらのビューには、複数のベーステーブルを含めることも、複数のベーステーブルで作成することもできます。 、およびそれらには、group by句、結合条件、orderby句が含まれています。ここではグループ関数を使用でき、データのグループが含まれています。複雑なビューを使用してDML操作を実行できるとは限りませんが、単純なビューとは異なり、複雑なビューにはgroup by、rownumのような疑似列、distinct、式で定義された列を含めることができます。 / p>
シンプルビュー
これらのビューには、単一のベーステーブルのみを含めるか、1つのテーブルからのみ作成できます。 MAX()、COUNT()などのグループ関数はここでは使用できず、データのグループは含まれていません。シンプルビューには、group by、rownumのような疑似列、distinct、式で定義された列は含まれていません。単純なビューには、ベーステーブルのNOTNULL列も含まれていません。
結論として、SQLのビューを定義して詳細に説明し、ビューを管理するさまざまな方法も定義します。システム定義ビューやユーザー定義ビューなど、SQLのさまざまなタイプのビューについて、各タイプのさまざまなサブタイプとともに詳細に説明します。
回答
この回答では、最初にビューを定義し、次に2つの異なるタイプのビューをリストします。おそらくもっとたくさんあることに注意してください。しかし、これらは私がよく見て使用している2つです。
最初のビューは、データのセットを提供するSQLの一部です。 「select * from x」はデータのセットを提供するため、ビューにすることができます。
私が経験したほとんどのRDBMSシステムでは、2つの主要なタイプのビューが発生する可能性があります。 1つ目は、RDBMSシステムによって定義されたクラシックビューです。ビューの作成構文を使用して、エイリアスとして使用できるビューを作成します。つまり、複雑なSQLを記述してビューに割り当て、ビュー全体を入力しなくても、別のSQLからそのビューをその名前で呼び出すことができます。
2番目以下一般的ですがそれほど重要ではないタイプのビューは、インラインビューと呼ばれます。インラインビューは、他のselectステートメント内にネストされたselectステートメントがある場所です。つまり、内部のselectステートメントは、外部のselectステートメントに一連のデータを提供します。例
select * from(select columna、columnb、columnc from table a)
括弧内の部分はインラインビューです。通常、これらは、データをさらに集約するouttersqlステートメントに到達する前にデータを集約するために使用されます。