ビューの作成
SQL 文の形式
CREATE [OR REPLACE] VIEW [IF NOT EXISTS] view_name
[(col_name [COMMENT col_comment], ...)]
[COMMENT view_comment]
[AS select_statement]
注
- ビューを作成するには、ビューの参照先テーブルの '読み取り' 権限が必要です。
- ビューには、有効な 'select' 文を 1 つだけ指定できます。
- ビューから他のビューを参照できますが、ビュー自身を参照することはできません。 循環参照には対応していません。
- insert into や insert overwrite などを使用してビューを操作し、ビューにデータを書き込むことはできません。
- ビューの作成後、参照先のテーブルが変更された場合 (参照先テーブルが削除されるなど)、アクセスできなくなることがあります。 参照先のテーブルとビューの対応関係を維持する必要があります。
- [if not exists] オプションが指定されておらず、ビューが既に存在する場合、create view を使用すると異常が発生します。このような状況が発生した場合は、create または replace view を使用して、ビューを再作成します。 ビューを再構築しても、権限は変わりません。
例:
create view if not exists sale_detail_view
(store_name, customer_id, price, sale_date, region)
comment 'a view for table sale_detail'
as select * from sale_detail;
ビューの削除
SQL 文の形式
DROP VIEW [IF EXISTS] view_name;
注 [if exists] オプションが指定されておらず、ビューが存在しない場合、エラーが発生します。
例:
DROP VIEW IF EXISTS sale_detail_view;
ビュー名の変更
SQL 文の形式
ALTER VIEW view_name RENAME TO new_view_name;
注 同一名のビューが既に存在する場合、エラーが発生します。
例:
create view if not exists sale_detail_view
(store_name, customer_id, price, sale_date, region)
comment 'a view for table sale_detail'
as select * from sale_detail;
alter view sale_detail_view rename to market;