Hcatalog 简明教程
HCatalog - View
本章介绍如何在HCatalog中创建并管理 view 。数据库视图使用 CREATE VIEW 语句创建。视图可以从单个表格、多个表格或另一个视图创建。
要创建视图,用户必须根据具体实现具有适当的系统权限。
Create View Statement
CREATE VIEW 创建一个具有给定名称的视图。如果已经存在具有相同名称的表或视图,则会引发错误。可以使用 IF NOT EXISTS 来跳过该错误。
如果没有提供列名,则视图的列名将自动从 defining SELECT expression 派生。
Note − 如果 SELECT 包含未别名的标量表达式,例如 x+y,则生成的视图列名将采用 _C0、_C1 等形式。
重命名列时,还可以提供列注释。注释不会自动从基础列继承。
如果视图的 defining SELECT expression 无效,则 CREATE VIEW 语句将失败。
Syntax
CREATE VIEW [IF NOT EXISTS] [db_name.]view_name [(column_name [COMMENT column_comment], ...) ]
[COMMENT view_comment]
[TBLPROPERTIES (property_name = property_value, ...)]
AS SELECT ...;
Example
以下是员工表数据。现在让我们看看如何创建一个名为 Emp_Deg_View 的视图,其中包含薪水高于 35000 的员工的 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;"