InterBase クイック スタート:Part II - ビューの作成
提供: InterBase
InterBase クイック スタート:Part II - データ定義 へ戻る
ビューとは仮想テーブルのことで、その中に 1 つもしくは複数のテーブルやビューから選択した行や列が含まれます。 InterBase は、ビューの定義のみ保持します。 ビューの内容は、基本的に、その基礎となっているテーブル群内にあるデータへのポインタです。 ビューを作成する際、ソース テーブルからビューへデータをコピーしているわけではなく、ただ基のデータを見ていることになります。
ビューはしばしばセキュリティ デバイスとしての機能を果たします。なぜならビューにより、ビューで定義するデータのみ(テーブル全体ではなく)見ることができる権限を人々に与えることができるからです。その他のビューの利用ケースとしては、データベースにおいて使用頻度の高いクエリや一連のクエリを保持などがあります。
このセクションでは、CREATE VIEW
文を使用して、電話リストを作成します。このビューでまとめるデータは、Employee
テーブルからの社員番号、姓、名、内線番号、および、Department
テーブルからの社員の位置、部署の電話番号です。
ビューからの選択は、テーブルから選択できるのと同じだけ行うことができます。 他の操作は、より制限されます。 ビューに関するさらなる情報については、『データ定義ガイド』の「ビューでの作業」を参照してください。
Phone_list ビューを作成する
- 次の文を入力して、
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
;