Hive表DDL操作(二)第1关:Create/Drop/Alter 视图

本文介绍了在Hive中如何创建、修改和删除视图。创建视图涉及CREATEVIEW语法,而修改视图可以设置属性或更改变名。删除视图使用DROPVIEW命令。示例展示了在test1数据库中创建student表,建立student_view视图,然后将其重命名为student_info_views,最后删除这个视图的过程。

相关知识

为了完成本关任务,你需要掌握: 1.如何创建视图; 2.如何修改视图; 3.如何删除视图。

Create 创建视图

Hive支持RDBMS视图的所有功能,包括创建、删除、修改视图。

创建视图语法:


  1. CREATE VIEWS [IF NOT EXISTS] view_name[(
  2. [COMMENT column_comment],…)]
  3. [COMMENT view_comment]
  4. [TBLPROPERTIES (property_name = property_value,…)]
  5. AS SELECT …;

属性含义与表相同。视图是只读的,视图结构在创建之初就确定,后续对于是图相关的表结构修改不会反映到视图上,不能以视图作为目标操作对象执行 LOAD/INSERT/ALTER相关命令。若SELECT子句执行失败,CREATE VIEW 操作也将会失败。

  • 创建一个测试表test:

  1. create table test(id int,name string);

说明:关键字大小写不影响操作。

  • 查看表test

desc test;如下图:

  • 基于表test创建一个test_view视图:

  1. CREATE VIEW test_view(
  2. id,
  3. name_length
  4. )
  5. AS SELECT id,length(name) FROM test;

  • 查看test_view视图属性,DESC test_view;

  • 查看视图结果:

  1. SELECT * FROM test_view;

Alter 视图

修改视图属性语法:


  1. ALTER VIEW [db_name.]view_name SET TBLPROPERTIES table_properties;
  2. table_properties:
  3. : (property_name = property_value, property_name = property_value, ...)
  • 修改添加视图test_view的属性:

  1. ALTER VIEW test_view SET TBLPROPERTIES ('creator'='Xiaoming','date'='2019-01-01');

修改视图名语法:


  1. ALTER VIEW [database_name.]view_name RENAME TO [database_name.]view_name;
  • 修改视图名test_viewtest2_view

Drop 视图

删除视图语法:


  1. DROP VIEW [IF EXISTS] view_name;
  • 删除test2_view视图

  1. drop view if exists test2_view;

  • 通过show tables;查看当前视图,如下test2_view视图已成功删除。

编程要求

请根据右侧命令行内的提示,在Begin - End区域内进行sql语句代码补充,具体任务如下:

student表结构:

INFOTYPE
SnoINT
nameSTRING
ageINT
sexSTRING
scoreSTRUCT Chinese:FLOAT,Math:FLOAT,English:FLOAT
  • 创建test1数据库
  • test1中创建表student,表结构如上所示
  • 创建视图student_view
  • 修改视图名student_viewstudent_info_views
  • 删除student_info_views视图
#********* Begin *********#
echo "
CREATE DATABASE IF NOT EXISTS test1;
CREATE TABLE IF NOT EXISTS test1.student(
Sno INT,
name STRING,
age INT,
sex STRING,
score STRUCT<Chinese:FLOAT,Math:FLOAT,English:FLOAT>)
;
CREATE VIEW student_view(
Sno,
name_length,
age,
sex
) 
AS SELECT Sno,length(name),age,sex FROM student;
alter view student_view rename to student_info_views;
drop view if exists student_info_views;
"
#********* End *********#

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值