- HCatalog 教程
- HCatalog - 首页
- HCatalog - 简介
- HCatalog - 安装
- HCatalog - CLI
- HCatalog CLI 命令
- HCatalog - 创建表
- HCatalog - 修改表
- HCatalog - 视图
- HCatalog - 显示表
- HCatalog - 显示分区
- HCatalog - 索引
- HCatalog API
- HCatalog - 读写器
- HCatalog - 输入输出格式
- HCatalog - 加载器和存储器
- HCatalog 有用资源
- HCatalog - 快速指南
- HCatalog - 有用资源
- HCatalog - 讨论
HCatalog - 视图
本章介绍如何在 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、name、Designation 和 salary 字段。
+------+-------------+--------+-------------------+-------+ | 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;
广告