2016-04-14 10 views
0

私はSQLのプログラマーではありませんが、私の講師は、「ビュー」が最近のプロジェクトの関連データを4つの異なるテーブル4つのテーブルを結合するために結合します。私の理解は、私はまだテーブルを結合する必要があるということです。私はビューがこの点で助けになる他の方法を考えることができません。SQL結合 - 4つのテーブルまたはビューを使用する

ビューを作成しても、まだテーブルに参加する必要があると仮定して正しいですか?

私はSQLでサブパート教育を受けていますか?

答えて

2

ビューの利点は、あなたが離れインクルードではなく、すべてのクエリに参加を含めたよりも、ビューを利用クエリに抽象的なJOINことができるということです - ビューは、ちょうどそれらはイエスクリーンなコード

そうするために参加するセーブあなたはまだJOINを書いていきますが、毎回ではなく一度書くことになります。

+0

ビューは内部最適化を確実にするのにも役立ちますが、インデックスをビュー(制限あり)に適用できますが、そのビューが実行されるたびにビューを作成するジョインも同様になります。抽象化レイヤーとして、特に読み取り専用のタスクの場合には非常に役立ちます。 – jleach

+0

これは私が思っていたことですが、SQL(少なくとももっと高度な使い方)に慣れていないので、私はこれを確認せずに私の反応を執拗にしたくありませんでした。ありがとう! – Smitty

1

ビューは保存されたクエリです。ビューは、テクニカルではないユーザーが独自のアドホッククエリを開発するのではなく、単にビューをクエリすることができるようにするのに役立ちます(間違っている可能性があります)。これはデータウェアハウスの概念に似ていますが、実装、メンテナンス、機能、およびパフォーマンスの観点とは明らかに大きく異なります。

あなたの学生について言及しましたが、私はさらに説明します。以前には答えられていない質問に対する回答をデータベースに照会し、同様の方法でもう一度質問されないようにするには、特別なクエリを書くだけです。これらのクエリは、短く単純である可能性が高い。同じことを何度も何度も何度も問い合わせている場合は、ビューを作成してそのビューを照会することができます。したがって、ビューがストアドプロシージャというよりも単に保存されたクエリで、それがどう違うのですか。私はあなたに尋ねられてうれしいです。ストアドプロシージャとは、SQL Serverによってプリコンパイルされた一連のSQL文です。それらは典型的に長くて比較的複雑です。また、ビューではデータを選択するだけですが、ストアドプロシージャではデータを操作します。

私は私の答えは少しご教授の質問の境界の外に出る知っているが、私はそれはあなたのために回し、車輪を取得し、後であなたの学術的または専門的なキャリアの中でのために研究を開始するためにあなたにいくつかのトピックを与える願っています:)

+2

ビューのもう1つの使用例はオブジェクト権限です。ユーザーをテーブルからブロックし、テーブルから特定の情報のみを選択できるビューにのみアクセスを許可することはまれではありません。 PIIやHIPAAなどが関わっている場合に特に役立ちます。 – jleach