ビューの作成

SQL 文の形式
CREATE [OR REPLACE] VIEW [IF NOT EXISTS] view_name
    [(col_name [COMMENT col_comment], ...)]
    [COMMENT view_comment]
    [AS select_statement]
  • ビューを作成するには、ビューの参照先テーブルの '読み取り' 権限が必要です。
  • ビューには、有効な 'select' 文を 1 つだけ指定できます。
  • ビューから他のビューを参照できますが、ビュー自身を参照することはできません。 循環参照には対応していません。
  • insert intoinsert 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;