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

40 篇文章 5 订阅
17 篇文章 7 订阅

相关知识

为了完成本关任务,你需要掌握: 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 *********#

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值