HIVE --- 视图

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangguosb/article/details/84075761

什么是视图?

  视图是一张“虚表”(只存在表的定义,不存储数据,表中逻辑上的数据来源于对其其它表的查询),如下图所示:
在这里插入图片描述

视图的作用

  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;

猜你喜欢

转载自blog.csdn.net/yangguosb/article/details/84075761
今日推荐