ビューとはクエリにより定義された仮想的な表です。表は破棄するまで利用可能なディクショナリの情報です。ビューは更新できません。
限定されたビューの名前にて、スキーマ名はSYSで始まってはなりません。
ビューの所有者は自動的にSELECT権限を得ます。ビューの所有者からSELECT権限を剥奪することはできません。データベースの所有者は自動的にビューへのSELECT権限を持ち、SELECT権限を他のユーザに付与することができます。データベースの所有者からSELECT権限を剥奪することはできません。
ビューの所有者はビューが参照する情報を所有する場合のみ、他のユーザにSELECT権限を付与することができます。
ビューの所有者が、ビューが参照する情報を所有していない場合、ビューの所有者は適切な権限を付与されていなければなりません。例えば、user2という認証識別子がuser1.t1という表とuser1.f_abs()という関数を参照する、user2.v2というビューを作成する場合、user2はuser1.t1へのSELECT権限とuser1.f_abs()へのEXECUTE権限を持たなければなりません。.
SELECT権限を付与する権限は剥奪できません。ビューが参照する情報への必要な権限が剥奪された場合、ビューは破棄されます。
CREATE VIEW ビュー名 [ ( 単純列名 [, 単純列名] * ) ] AS 問い合わせ
ビューの定義にビューの列一覧を書くことで、ビューの列に明示的な名前を与えることができます。 ビューの列一覧がない場合、ビューの列名は元となる問い合わせの列名を引継ぎます。ビューの全列は一意な名前を持たなければなりません。
CREATE VIEW SAMP.V1 (COL_SUM, COL_DIFF) AS SELECT COMM + BONUS, COMM - BONUS FROM SAMP.EMPLOYEE; CREATE VIEW SAMP.VEMP_RES (RESUME) AS VALUES 'Delores M. Quintana', 'Heather A. Nicholls', 'Bruce Adamson'; CREATE VIEW SAMP.PROJ_COMBO (PROJNO, PRENDATE, PRSTAFF, MAJPROJ) AS SELECT PROJNO, PRENDATE, PRSTAFF, MAJPROJ FROM SAMP.PROJECT UNION ALL SELECT PROJNO, EMSTDATE, EMPTIME, EMPNO FROM SAMP.EMP_ACT WHERE EMPNO IS NOT NULL;
CREATE TABLE T1 (C1 DOUBLE PRECISION); CREATE FUNCTION SIN (DATA DOUBLE) RETURNS DOUBLE EXTERNAL NAME 'java.lang.Math.sin' LANGUAGE JAVA PARAMETER STYLE JAVA; CREATE VIEW V1 (C1) AS SELECT SIN(C1) FROM T1;
SELECT * FROM V1
V1というビュー、T1という表、 外部のスカラー関数のSIN