hive中沒有直接刪除欄位的操作,只有 add/replace
做個測試:
1)建表操作
createtable
ifnot
exists
temp
.test1(
'申請號
',data_dt string comment '日期
',flag string comment '標識
',age
decimal(20,6) comment '年齡'
,money_all
decimal(20,6) comment '
money
') comment
'測試表temp1
'partitioned by(
table_name
varchar(50) comment '
表名稱'
,dt
varchar(8) comment '
資料日期')
stored
as textfile;
2)用hive檢視表結構
hive>desc
temp
.test1;
data_dt string
flag string
age
decimal(20,6
)
money_all
decimal(20,6
)
table_name
varchar(50
)
dt
varchar(8)
3)往表裡插入資料
insertinto
temp.test1 values('
b20220125cde
','20220125
','',25,999999999,'
sh001_sh001_jiebei_test1
','20220125
');
4)檢視具體檔案內容
[zw@hadoop ~
]$ hdfs dfs -cat /
user
/hive/warehouse/temp.db/test1/table_name=sh001_sh001_jiebei_test1/dt=
20220125
/000000_0
b20220125cde2022012525.
000000999999999.000000
5)修改字段(刪除後兩個字段)
altertable
temp.test1 replace
columns (
'申請號
',data_dt string comment '日期
',flag string comment '標識
');
6)檢視字段
hive>desc
temp
.test1;
okdata_dt string
flag string
table_name
varchar(50
)
dt
varchar(8)
7)查詢資料 (字段已經去掉)
hive>select
*from
temp
.test1;
okb20220125cde
20220125 sh001_sh001_jiebei_test1 20220125
8)檢視具體檔案內容(檔案內容是沒有變的)
[zw@hadoop ~
]$ hdfs dfs -cat /
user
/hive/warehouse/shdata.db/sh001_sh001_jiebei_test1/table_name=sh001_sh001_jiebei_test1/dt=
20220125
/000000_0
b20220125cde2022012525.
000000999999999.000000
Mysql 新增字段 修改字段 刪除字段
alter table 表名 add 欄位名 字段型別 字段長度 default 預設值 comment 注釋 例如 alter table order add code char 6 default null comment 優惠碼 2 修改字段 修改欄位名 字段型別 長度 a 修改欄位名 alt...
Mysql 新增字段 修改字段 刪除字段
alter table 表名 add column 欄位名 字段型別 字段長度 default 預設值 comment 注釋 例如 alter table order add column code char 6 default null comment 優惠碼 2 修改字段 修改欄位名 字段型別 ...
ORACLE新增字段 刪除字段
1.刪除表 drop table sys job 2.建立表 create table create table sys job job id number 30 not null,job name varchar2 30 not null alter table sys job addconstr...