HCatalog - 查看

本章介绍如何在HCatalog中创建和管理视图.使用 CREATE VIEW 语句创建数据库视图.可以从单个表,多个表或其他视图创建视图.

要创建视图,用户必须根据具体实现具有适当的系统权限.

创建视图语句

创建视图创建具有给定名称的视图.如果已存在具有相同名称的表或视图,则会引发错误.您可以使用 IF NOT EXISTS 跳过错误.

如果没有提供列名,视图列的名称将自动从

注意 : 如果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;