1. 程式人生 > >HIVE --- 檢視

HIVE --- 檢視

什麼是檢視?

  檢視是一張“虛表”(只存在表的定義,不儲存資料,表中邏輯上的資料來源於對其其它表的查詢),如下圖所示:
在這裡插入圖片描述

檢視的作用

  1. 不同型別的使用者存在不同的檢視,方便精確的許可權控制;
  2. 查詢語句變得精簡;

檢視DDL

建立檢視

  從建立語句可以看出,檢視建立時就已經綁定了查詢語句(即指明資料來源和獲取方式);

CREATE VIEW [IF NOT EXISTS] [db_name.]view_name [(column_name [COMMENT column_comment], ...) ]
  [COMMENT view_comment]
  [TBLPROPERTIES (property_name = property_value, ...)]
  AS SELECT ...;

修改檢視

  • 修改繫結的查詢語句
ALTER VIEW [db_name.]view_name AS select_statement;
  • 修改檢視屬性
ALTER VIEW [db_name.]view_name SET TBLPROPERTIES table_properties;

刪除檢視

DROP VIEW [IF EXISTS] [db_name.]view_name;

檢視DML

檢視只能查詢,無法修改資料

show語句

  • 檢視檢視建立語句:SHOW CREATE VIEW [db_name.]view_name;
  • 檢視存在的檢視:
SHOW VIEWS;                                -- show all views in the current database
SHOW VIEWS 'test_*';                       -- show all views that start with "test_"
SHOW VIEWS '*view2';                       -- show all views that end in "view2"
SHOW VIEWS LIKE 'test_view1|test_view2';   -- show views named either "test_view1" or "test_view2"
SHOW VIEWS FROM test1;                     -- show views from database test1
SHOW VIEWS IN test1;                       -- show views from database test1 (FROM and IN are same)
SHOW VIEWS IN test1 "test_*";              -- show views from database test2 that start with “test_"

參考:

  1. 官網:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Create/Drop/AlterView;