HCatalog 视图
本章介绍如何创建和管理 view 在 HC HCatalog 中。数据库视图是使用 创建视图 陈述。可以从单个表、多个表或另一个视图创建视图。
要创建视图,用户必须根据具体实现具有适当的系统权限。
创建视图语句
创建视图 创建具有给定名称的视图。如果同名的表或视图已存在,则会引发错误。你可以使用 如果不存在 跳过错误。
如果没有提供列名,视图的列名将自动从 定义 SELECT 表达式 .
注意 :如果SELECT中包含x+y等无别名的标量表达式,则生成的视图列名会以_C0、_C1等形式生成。
重命名列时,还可以提供列注释。注释不会自动从基础列继承。
如果视图的 CREATE VIEW 语句将失败 定义 SELECT 表达式 是无效的。
语法
CREATE VIEW [IF NOT EXISTS] [db_name.]view_name [(column_name [COMMENT column_comment], ...) ] [COMMENT view_comment] [TBLPROPERTIES (property_name = property_value, ...)] AS SELECT ...;
例子
以下是员工表数据。现在让我们看看如何创建一个名为 Emp_Deg_View 包含薪水大于 35,000 的员工的字段 id、姓名、指定和薪水。
+------+-------------+--------+-------------------+-------+ | ID | Name | Salary | Designation | Dept | +------+-------------+--------+-------------------+-------+ | 1201 | Gopal | 45000 | Technical manager | TP | | 1202 | Manisha | 45000 | Proofreader | PR | | 1203 | Masthanvali | 30000 | Technical writer | TP | | 1204 | Kiran | 40000 | Hr Admin | HR | | 1205 | Kranthi | 30000 | Op Admin | Admin | +------+-------------+--------+-------------------+-------+
以下是根据上述给定数据创建视图的命令。
./hcat –e "CREATE VIEW Emp_Deg_View (salary COMMENT ' salary more than 35,000') AS SELECT id, name, salary, designation FROM employee WHERE salary ≥ 35000;"
OK Time taken: 5.3 seconds
删除视图声明
DROP VIEW 删除指定视图的元数据。删除由其他视图引用的视图时,不会发出警告(相关视图会悬空而无效,必须由用户删除或重新创建)。
语法
DROP VIEW [IF EXISTS] view_name;
例子
以下命令用于删除名为 Emp_Deg_View .
DROP VIEW Emp_Deg_View;