学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

HSQLDBを使用したデータベース入門その10 仮想的なテーブル(view)

>>この記事には書き直した新しいページがあります。<<


<<前  [TOP]  次>>


リレーショナル・データベースでは、view(ビュー)と呼ばれる仮想的なテーブルがよく使われます。
「仮想的」というのは、viewは、データベースの中では普通のテーブルのような「実体」を持っておらず、それを作り出す定義のみがシステムに記憶されているだけだからです。
SQLの中でのviewは、ほとんどテーブルと区別なく扱われます。
select文のfrom句には、テーブル名とview名との混在が可能となっています。


実際にviewをつくる操作を見てみましょう。
viewをつくる命令の一般形は、次のようなものです。

create view view名 [( 項目名リスト ... )] as select 項目名リスト from テーブルもしくはview 名リスト where 選択条件;



create view は、selectの出力が再びテーブルとなることを利用し、select文で新しい仮想的なテーブルviewを定義しているのです。


次の例では、テーブル「books」の上に、「books_view」という名前のviewがつくられています。


【例1:テーブルから新しいviewをつくる】

create view books_view as select * from books where publisher like '%国語%';




作られた「books_view」の内容を見てみましょう。

select * from books_view;




view「books_view」はテーブルと違い、それ自身としてはデータをかかえていません。
ただシステムは、このviewの定義を知っています。
先ほどのviewからの検索の例では、システムはviewの定義に基づいてこのselect文を、次のようなselect文に置き換えて実行しています。

select * from books where publisher like '%国語%'; 



create view は基本的に、もとのテーブルまたはviewの項目名を継承しようとしますが、あたらしい項目が計算式で定義されていたり、もとの複数のテーブルに同じ項目名があった場合には、create view で新しい項目名をつけることが出来ます。


【例2:新しい項目名の設定】

create view books_view2(番号,題名,著者,出版社) as select * from books where publisher like '%算数%';




不用になったviewをシステムから削除するには、次のdropコマンドを用います。

drop view books_view2;




<<前  [TOP]  次>>