当前位置:   article > 正文

Hive表DDL操作(一) 第3关:Alter 表/列_第3关:alter 表/列

第3关:alter 表/列

相关知识

为了完成本关任务,你需要掌握: 1.如何修改表; 2.如何修改列。

Alter 重命名表

重命名表的语法为:

 
  1. ALTER TABLE table_name RENAME TO new_table_name;
  1. 将上一关创建的items_info表重命名为items
 
  1. ALTER TABLE items_info RENAME TO items;

Alter 修改表

修改表列的语法为:

 
  1. ALTER TABLE table_name [PARTITION partition_spec] CHANGE [COLUM] col_old_name col_new_name colum_type [COMMENT col_comment] [FIRST|AFTER column_name] [CASCADE|RESTRICT];
  • 以上操作可以修改表的列名、列数据类型、列存储位置以及注释说明
  • FIRSTAFTER用于指定是否交换列的前后顺序
  • 该操作只改变表的metadataRESTRICT方式,即默认方式)
  • CASCADE关键字用于限定修改操作同时同步到表metadata和分区metadata
  1. 修改表itemsprice列名为items_price
 
  1. ALTER TABLE items CHANGE price item_price FLOAT COMMENT 'items price';

Alter 修改列

增加表列和删除表列或替换表列的语法为:

 
  1. ALTER TABLE table_name [PARTITION partition_spec] ADD|REPLACE COLUMNS (col_namedata_type [COMMENT col_comment],…) [CASCADE|RESTRICT]
  • ADD COLUMNS:用于在表中已存在实体列(existing columns)之后且分区列(partition columns,或伪列)之前添加新的列
  • REPLACE COLUMNS:删除表中现有的全部列,添加新的列集合。该操作仅支持使用内部的SerDe(DynamicSerDe、MetadataTypedColumnsetSerDe/LazySimpleSerDe和ColumnarSerDe)的表(SerDe用于实现表数据与 HDFS 数据之间的转换方式)
  1. items添加生产日期item_date列,数据类型为STRING,说明为items date
 
  1. ALTER TABLE items ADD COLUMNS (item_date STRING COMMENT 'item date');

编程要求

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

student表结构:

INFOTYPECOMMENT
SnoINTstudent sno
nameSTRINGstudent name
ageINTstudent age
sexSTRINGstudent sex
scoreSTRUCT <Chinese:FLOAT,Math:FLOAT,English:FLOAT>student score
  • 创建数据库test3
  • 在数据库tets3中,创建表student,表结构如上所示,和第二关相同
  • 重命名表名字studentstudent_info
  • 修改列名agestudent_age
  • 增加一列birthday,数据类型为STRING,说明信息为student birthday

按照以上要求填写命令。每个要求对应一条命令,共5条命令,以;隔开。

  1. #********* Begin *********#
  2. echo "
  3. drop database if exists test3 cascade;
  4. CREATE DATABASE IF NOT EXISTS test3
  5. LOCATION '/hive/test3'
  6. WITH DBPROPERTIES('creator'='John','date'='2022-04-20');
  7. CREATE TABLE IF NOT EXISTS test3.student(
  8. Sno INT COMMENT 'student sno',
  9. name STRING COMMENT 'student name',
  10. age INT COMMENT 'student age',
  11. sex STRING COMMENT 'student sex',
  12. score STRUCT <Chinese:FLOAT,Math:FLOAT,English:FLOAT> COMMENT 'student score');
  13. ALTER TABLE student RENAME TO student_info;
  14. ALTER TABLE student_info CHANGE age student_age int;
  15. ALTER TABLE student_info ADD COLUMNS (birthday STRING COMMENT 'student birthday');
  16. "
  17. #********* End *********#

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号