0


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

相关知识

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

Alter 重命名表

重命名表的语法为:

  1. ALTER TABLE table_name RENAME TO new_table_name;

  2. 将上一关创建的items_info表重命名为items

  3. 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

  2. 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

  2. ALTER TABLE items ADD COLUMNS (item_date STRING COMMENT 'item date');

编程要求

请根据右侧命令行内的提示,在

Begin - End

区域内进行

sql

语句代码补充,具体任务如下:

student

表结构:
INFOTYPECOMMENTSnoINTstudent snonameSTRINGstudent nameageINTstudent agesexSTRINGstudent sexscore

STRUCT <Chinese:FLOAT,Math:FLOAT,English:FLOAT>

student score

  • 创建数据库test3
  • 在数据库tets3中,创建表student,表结构如上所示,和第二关相同
  • 重命名表名字studentstudent_info
  • 修改列名agestudent_age
  • 增加一列birthday,数据类型为STRING,说明信息为student birthday

*按照以上要求填写命令。每个要求对应一条命令,共

5

条命令,以

;

隔开。*

#********* Begin *********#
echo "
drop database if exists test3 cascade;

CREATE DATABASE IF NOT EXISTS test3  
LOCATION '/hive/test3'  
WITH DBPROPERTIES('creator'='John','date'='2022-04-20');  
 
CREATE TABLE IF NOT EXISTS test3.student(  
Sno INT COMMENT 'student sno',  
name STRING COMMENT 'student name',  
age INT COMMENT 'student age',  
sex STRING COMMENT 'student sex',  
score STRUCT <Chinese:FLOAT,Math:FLOAT,English:FLOAT> COMMENT 'student score');
 
ALTER TABLE student RENAME TO student_info;  
 
ALTER TABLE student_info CHANGE age student_age int; 
 
ALTER TABLE student_info ADD COLUMNS (birthday STRING COMMENT 'student birthday'); 

"
#********* End *********#
标签: 数据库

本文转载自: https://blog.csdn.net/qq_61604164/article/details/128829704
版权归原作者 是草莓熊吖 所有, 如有侵权,请联系我们删除。

“Hive表DDL操作(一) 第3关:Alter 表/列”的评论:

还没有评论