建立視圖

建立視圖的文法格式,如下所示:
CREATE [OR REPLACE] VIEW [IF NOT EXISTS] view_name
    [(col_name [COMMENT col_comment], ...)]
    [COMMENT view_comment]
    [AS select_statement]
说明
  • 建立視圖時,必須有對視圖所參考資料表的讀許可權。
  • 視圖只能包含一個有效select語句。
  • 視圖可以引用其它視圖,但不能引用自己,也不能循環參考。
  • 不允許向視圖寫入資料,例如使用insert into或者insert overwrite操作視圖。
  • 當建好視圖後,如果視圖的參考資料表發生了變更,有可能導致視圖無法訪問,例如刪除被參考資料表。您需要自己維護參考資料表及視圖之間的對應關係。
  • 如果沒有指定if not exists,在視圖已經存在時用create view會導致異常。這種情況可以用create or 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;

刪除視圖

刪除視圖的文法格式,如下所示:
DROP VIEW [IF EXISTS] view_name;
说明 如果視圖不存在且沒有指定if exists,則報錯。
樣本如下:
DROP VIEW IF EXISTS sale_detail_view;

重新命名視圖

重新命名視圖的文法格式,如下所示:
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;