- ベストアンサー
SqlServer2012 ビューとクエリの違いと概念について教えてください
- SqlServerにおけるビューとクエリの違いと概念について教えてほしいです。
- SqlServerにはビューとクエリの両方の言葉が出てきますが、実行の方法や結果に違いがあるのでしょうか?
- SqlServerのビューでクエリを実行する方法や、その結果について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Accessのクエリーに相当するものはSQL Serverでは ビュー、ストアドプロシージャ、テーブル値関数に なります。 ビューに関して Accessでいうところの アクションクエリーは作成できません。 パラメータクエリーも作成できません。 Order By句にはTop句が必要で、 SELECT TOP (100) PERCENT とすると並べ替えは保証 されません。PERCENTを削除すれば並べ替えされますが 100の数字をあらがじめ予想される最大レコード数に する必要があります。 SELECT TOP (5000) ・・・・・ ORDER BY ・・・・・ Where句、Group By句は使用できます。 ビューを元にして、別のビューを作成できます。 ストアドプロシージャに関して いろいろできます。クロス集計もできます。 TOP句も必要ありません。ビュー、テーブル値関数を 元にして作成することもできます。 ストアドを元にして、別のストアドは作成できません。 Accessのフォームでレコードソースを パラメータ付きストアドプロシージャにした場合 レコードの編集ができないことがあります。 ビューの利点は他の方が述べている以外に 他のデータベースのテーブルを参照するとき、一旦 ビューで受けておくと、自分のテーブルのように 扱うことができます。
その他の回答 (2)
- 原沢 信道(@nharasawa)
- ベストアンサー率53% (90/168)
クエリ(Query)は「問い合わせ」の意味でSQLのQは元々はQueryの略でしたが今はSQLで一つの言葉になっています。ビュー(View)は「景色」や「見解」と言った意味ですが、RDBMSでは実際のテーブルをSQLのSELECTで問い合わせた状態を、仮想のテーブルと見立てる場合に使用します。ちなみに私の作っているツールは7種類のRDBMSに対応していますが、テーブル名一覧等のテーブル構造がRDBMS毎に異なるのでViewを造って見かけ上同じ構造のテーブルに見立てる事でツール側ではどのRDBMSでも同じ書き方でSQLが書けるので便利に使っています。
お礼
結果的にクエリの代わりにビューを使うことにしました。 並べ替えが働かないのは、実際に使うSQLの中に、ビューを内包してOrderBy句を書くことにしました。 この度は教えていただいて、ありがとうございました。
補足
回答ありがとうございます。 やはり、よくわからないので、図書館で本を何冊か借りてきました。 これから読んで、学習してみようと思います。
- toshih2000
- ベストアンサー率22% (120/541)
SQL Server の View と Access の クエリは同じだと思います。 しかし、 SQL Server の クエリ と Access のクエリは同じでは無いと思います。 SQL Server の クエリとは SQL文そのもの または それを保存したファイルを表しています。 クエリを実行するとは、SQL文を実行すると同じ意味です。 Table には実データが格納されていますが、 View の実体は SQL文です。 このSQL文をView として作成すれば、Table と同じように使えるようになります。 例えば t_aaa というテーブルが有った時、 検索する場合のSQL文としては SELECT * FROM t_aaa という感じで、テーブル名を使ってクエリを実行します。 t_aaa を元にした View v_bbb を作成したとします。 SQL文としては SELECT * FROM v_bbb これを実行することが ビューでクエリを実行するという意味です。 (出力結果はビューの作りによって異なります) View を作成する主な理由は以下です。 ・よく使用する複雑なSQLを簡単に扱えるようにする。 ・セキュリティのため、View にのみアクセス権を与える。
お礼
結果的にクエリの代わりにビューを使うことにしました。 並べ替えが働かないのは、実際に使うSQLの中に、ビューを内包してOrderBy句を書くことにしました。 この度は教えていただいて、ありがとうございました。
補足
回答ありがとうございます。 やはり、よくわからないので、図書館で本を何冊か借りてきました。 これから読んで、学習してみようと思います。 ちなみに、Accessからインポートしたクエリは、テーブル扱いになっています。いっそう混乱します。
お礼
結果的にクエリの代わりにビューを使うことにしました。 並べ替えが働かないのは、実際に使うSQLの中に、ビューを内包してOrderBy句を書くことにしました。 この度は教えていただいて、ありがとうございました。
補足
回答ありがとうございます。 やはり、よくわからないので、図書館で本を何冊か借りてきました。 これから読んで、学習してみようと思います。