📅  最后修改于: 2020-11-30 04:24:55             🧑  作者: Mango
本章介绍如何在HCatalog中创建和管理视图。数据库视图是使用CREATE VIEW语句创建的。可以从单个表,多个表或另一个视图创建视图。
要创建视图,用户必须根据特定的实现具有适当的系统特权。
CREATE VIEW创建具有给定名称的视图。如果已经存在相同名称的表或视图,则会引发错误。您可以使用IF NOT EXISTS跳过该错误。
如果没有提供列名,则视图的列名将自动从定义的SELECT表达式派生。
注–如果SELECT包含非别名的标量表达式,例如x + y,则将以_C0,_C1等格式生成结果视图列名称。
重命名列时,也可以提供列注释。注释不会自动从基础列继承。
如果视图的定义SELECT表达式无效,则CREATE VIEW语句将失败。
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;