InterBase クイック スタート:Part II - ビューの作成

提供: InterBase

InterBase クイック スタート:Part II - データ定義 へ戻る

ビューとは仮想テーブルのことで、その中に 1 つもしくは複数のテーブルやビューから選択した行や列が含まれます。 InterBase は、ビューの定義のみ保持します。 ビューの内容は、基本的に、その基礎となっているテーブル群内にあるデータへのポインタです。 ビューを作成する際、ソース テーブルからビューへデータをコピーしているわけではなく、ただ基のデータを見ていることになります。

ビューはしばしばセキュリティ デバイスとしての機能を果たします。なぜならビューにより、ビューで定義するデータのみ(テーブル全体ではなく)見ることができる権限を人々に与えることができるからです。その他のビューの利用ケースとしては、データベースにおいて使用頻度の高いクエリや一連のクエリを保持などがあります。

このセクションでは、CREATE VIEW 文を使用して、電話リストを作成します。このビューでまとめるデータは、Employee テーブルからの社員番号、姓、名、内線番号、および、Department テーブルからの社員の位置、部署の電話番号です。

ビューからの選択は、テーブルから選択できるのと同じだけ行うことができます。 他の操作は、より制限されます。 ビューに関するさらなる情報については、『データ定義ガイド』の「ビューでの作業」を参照してください。

Image 025.jpg Phone_list ビューを作成する

  1. 次の文を入力して、Employee および Department テーブルから列を選択してくる、Phone_list ビューを作成します。
CREATE VIEW phone_list
AS
  SELECT emp_no,
         first_name,
         last_name,
         phone_ext,
         location,
         phone_no
  FROM   employee,
         department
  WHERE  employee.dept_no = department.dept_no
  • WHERE 句では、どのように行をつなげるかを指定します: Department テーブルの dept_no 列は外部キーで、Employee テーブルの dept_no 列を参照しています。両列とも UNIQUE かつ NOT NULL で、Department テーブルの dept_no 値は、Employee テーブルにおける行を一意に識別します。
  • 同一のクエリで同じ列名が 2 つのテーブルに存在する場合、それらの列は両方とも、テーブル名と列名をピリオドでつなげて指定をすることで参照します。
table_name.column_name

Phone_list ビューのメタデータを調べて、定義が正しいことを確認しましょう。

/* View: PHONE_LIST, Owner: TUTOR */

CREATE VIEW "PHONE_LIST" (
  "EMP_NO", 
  "FIRST_NAME", 
  "LAST_NAME", 
  "PHONE_EXT", 
  "LOCATION", 
  "PHONE_NO"
) AS

  SELECT emp_no,
         first_name,
         last_name,
         phone_ext,
         location,
         phone_no
  FROM   employee,
         department
  WHERE  employee.dept_no = department.dept_no
;
TutorialViewMetadata.png

次は: