CREATE VIEW文は、SelectQuery
句で指定された表に対するビューを作成します。 ビューとは、1つ以上のディテール表に基づいた論理表のことです。 ビュー自体にデータは含まれていません。 ビューは、ディテール表からすでに計算されたデータを含むマテリアライズド・ビューと区別するために、非マテリアライズド・ビューと呼ばれることがあります。
必要な権限
ビューの所有者の場合はCREATE VIEWが必要です。または別のユーザーのビューの場合はCREATE ANY VIEWが必要です。および
参照される表とビューに対するSELECTが必要です
SQL構文
CREATE VIEWViewName
ASSelectQuery
パラメータ
CREATE VIEW文には、次のパラメータがあります。
ビューの定義に使用される問合せには、いくつかの制限があります。
ビュー定義のSELECT *問合せは、ビューの作成時に実行されます。ビューの作成後に追加された列は、ビューには反映されません。
順序と同じ名前のビューは作成しないでください。
次のものはビューの作成に使用するSELECT文で使用できません。
DISTINCT
FIRST
ORDER BY
引数
一時表
SELECT構文のリストの各式には、一意の名前が必要です。 列の別名が定義されていないかぎり、単純にその列の名前が使用されます。ROWIDは式とみなされるため、別名が必要です。
SELECT FOR UPDATEまたはSELECT FOR INSERT文は、ビューの作成に使用できません。
特定のTimesTen問合せの制限は、非マテリアライズド・ビューの作成時にチェックされません。これらの制限に違反するビューを作成できることがありますが、後で実行された文でビューが参照されるときにエラーが返されます。
SELECT問合せの制限
ビューがSELECT文のFROM句で参照される場合、その名前は解析時に導出表と同じ定義に置き換えられます。 導出表を使用しなくても適切な問合せになるように、元のSELECT問合せの同じ句にビューのすべての句をマージすることができない場合、導出表の内容がマテリアライズされます。たとえば、ビューと参照元のSELECTで集計が指定されている場合は、その結果が選択の他の表に結合される前に、ビューがマテリアライズされます。
ビューの削除にDROP TABLE文を使用することはできません。 DROP [MATERIALIZED] VIEW文を使用する必要があります。
ビューの変更にALTER TABLE文を使用することはできません。
ビューの参照は、ディテール表が削除または変更されていることが原因で失敗することがあります。
例
employees
表から非マテリアライズド・ビューを作成します。
Command> CREATE VIEW v1 AS SELECT employee_id, email FROM employees; Command> SELECT FIRST 5 * FROM v1; < 100, SKING > < 101, NKOCHHAR > < 102, LDEHAAN > < 103, AHUNOLD > < 104, BERNST > 5 rows found.
表t1
の集計問合せから非マテリアライズド・ビューを作成します。
CREATE VIEW v1 (max1) AS SELECT MAX(x1) FROM t1;
関連項目