大数据学习之路32-hive的DDL语法,修改表名,列定义

1.重命名表:

alter table 原表名 rename to 新表名;

大数据学习之路32-hive的DDL语法,修改表名,列定义_第1张图片

2.增加更新列:

alter table table_name add|replace columns(col_name data_type);
//add代表新增加一个字段,字段位置在所有列后面(partition列前)
replace则表示替换表中所有字段。

大数据学习之路32-hive的DDL语法,修改表名,列定义_第2张图片

如果这个表中原来有三个字段的数据,如果替换成了两个字段,则查询的时候只会显示两个字段的数据。数据并没有消失,只是查询的时候不显示第三个字段的数据。如果增加的列数比原来多,则多出来的字段值为NULL。

在hive中没有数据校验,它不会去约束你的数据格式。我们可以做个试验

我们先建一个表:

create table t_test(id int,name string,age int)
row format delimited
fields terminated by ',';

再建一个测试数据:

1,zhangsan,18
2,zhaoliu
hahahaha,19
4,wangwu,20,kakaka

然后将数据导入表中:

load data local inpath '/root/test.1' into table t_test;

大数据学习之路32-hive的DDL语法,修改表名,列定义_第3张图片

我们可以看到第二行,如果有数据的格式识别不了的话就会为空。

3.修改某一列:

alter table table_name change column 旧列名 新列名 
column_type[comment col_comment] [first|after column_name]
//first,after可以调整位置

我们测试一下:

大数据学习之路32-hive的DDL语法,修改表名,列定义_第4张图片

你可能感兴趣的:(大数据)