質問: sqlserver2012 ビューとクエリ sqlserverにおける、ビューとクエリについて、その違いというか、概念を教えてください。 私は、最初にaccessと「標準sql」という本で、データベースを学びました。 本を読んでaccessに向かったときに、クエリってビューのことなのかな?と思って、ずっとやってきました。 ところが、sqlserverには、両方の言葉が出てきます。で、とりあえず、クエリをデザイナで作ってみて、クエリにクエリを内包するようなものを作る段になって、クエリが追加できなことに気づきました。accessでクエリのタブがあるところに、ビューというタブがあるので、クエリの代わりに、ビューを作りました。まったく同じ手順で作れましたが、保存するときに、「orderby句は、ビュー定義のtop句によって返される行を決定するためだけに使用されます。したがってクエリ自体でもorderbyが指定されていないと、ビューでクエリを実行したときに結果が並べ替えられ宇保証はありません。」 などと、表示されます。 ビューでクエリを実行するとは、どういう事なのでしょうか?クエリを実行するのと、ビューを実行(?)するのは、何か違うのでしょうか?
回答: クエリ(query)は「問い合わせ」の意味でsqlのqは元々はqueryの略でしたが今はsqlで一つの言葉になっています。ビュー(view)は「景色」や「見解」と言った意味ですが、rdbmsでは実際のテーブルをsqlのselectで問い合わせた状態を、仮想のテーブルと見立てる場合に使用します。ちなみに私の作っているツールは7種類のrdbmsに対応していますが、テーブル名一覧等のテーブル構造がrdbms毎に異なるのでviewを造って見かけ上同じ構造のテーブルに見立てる事でツール側ではどのrdbmsでも同じ書き方でsqlが書けるので便利に使っています。