一、Hive增加字段的SQL語句
在Hive中,要向表中增加一個字段,首先要用ALTER TABLE語句,它的通用語法如下:
ALTER TABLE table_name ADD
[COLUMN] column_name data_type
[COMMENT 'column_comment']
[FIRST | AFTER column_name]
其中:
– ADD COLUMN column_name data_type:指定要新增的列名和數據類型;
– COMMENT ‘column_comment’:可選,可以為新增的列添加註釋;
– FIRST | AFTER column_name:可選,指定新增的列的位置,FIRST表示將列添加為表的第一行,AFTER column_name表示將列添加在指定列的後面。
舉個例子,下面的代碼演示了如何向表student_info中新增一列phone:
ALTER TABLE student_info ADD COLUMN phone STRING COMMENT '電話號碼' AFTER name;
以上代碼中,我們向student_info表中新增了一列phone,此列的數據類型為STRING,列注釋為‘電話號碼’,並且被添加到表的name列後面。
二、Hive增加字段並賦默認值
如果在新增字段時,想要為其設置一個默認值,可以使用以下語法:
ALTER TABLE table_name ADD
[COLUMN] column_name data_type
[COMMENT 'column_comment']
[FIRST | AFTER column_name]
[DEFAULT default_value];
其中,[DEFAULT default_value]表示在新增列的同時為其設置默認值。例如:
ALTER TABLE student_info ADD COLUMN address STRING COMMENT '家庭住址' AFTER name DEFAULT 'No data';
以上代碼中,我們向student_info表中新增了一列address,並將它的默認值設為‘No data’。如果在執行該語句之前,表中已有數據,則新增的列address在這些數據中的默認值為‘No data’。
三、Hive增加字段語句
除了通過ALTER TABLE語句新增字段,還可以使用Hive的CREATE TABLE語句來創建表,並在其中指定需要的字段。CREATE TABLE語句的通用語法如下:
CREATE TABLE table_name (
column_name data_type [COMMENT 'column_comment'],
...
) [partitioned by (col_name data_type, ...)]
[CLUSTERED BY (col_name, col_name, ...)
[SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
[ROW FORMAT row_format]
[STORED AS file_format]
[LOCATION hdfs_path]
[TBLPROPERTIES (property_name=property_value, ...)]
其中,column_name data_type [COMMENT ‘column_comment’]表示需要的列名、數據類型以及注釋,每個字段之間使用逗號分隔。如果表需要使用分區,可以在CREATE TABLE語句中使用partitioned by子句來指定分區字段;如果要對錶進行排序和聚集,則可以使用CLUSTERED BY和SORTED BY子句;如果需要指定文件格式或位置,則可以使用STORED AS和LOCATION子句。
舉個例子,下面的代碼演示了如何使用CREATE TABLE語句來創建一個student_info表,並在其中指定需要的字段:
CREATE TABLE student_info (
id INT COMMENT '學號',
name STRING COMMENT '姓名',
age INT COMMENT '年齡',
gender STRING COMMENT '性別',
phone STRING COMMENT '電話號碼',
address STRING COMMENT '家庭住址'
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;
以上代碼中,我們使用了CREATE TABLE語句來創建了一個student_info表,並指定了6個字段,分別為:id、name、age、gender、phone、address,它們的數據類型分別為INT、STRING、INT、STRING、STRING、STRING,並且都附帶了注釋。ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’和STORED AS TEXTFILE是對錶的格式和存儲進行了聲明,代表着將表以文本文件的形式存儲在HDFS上。
四、Hive增加字段指定位置
如果在新增字段時想要指定該字段在表中的位置,可以使用AFTER關鍵字。例如下面的代碼演示了如何新增一列grade_age,並將它添加在表的第一個位置:
ALTER TABLE student_info ADD COLUMN grade_age INT COMMENT '年級' FIRST;
五、Hive增加字段指定默認值
如果需要在新增字段時為其指定默認值,只需要在ALTER TABLE語句中增加DEFAULT關鍵字,後面跟着默認值即可。例如下面的代碼演示了如何向表student_info中新增一列hobby,並將它的默認值設為’No data’:
ALTER TABLE student_info ADD COLUMN hobby STRING COMMENT '愛好' AFTER gender DEFAULT 'No data';
六、Hive刪除字段
要在Hive中刪除一個字段,可以使用ALTER TABLE語句,通用語法如下:
ALTER TABLE table_name DROP [COLUMN] column_name;
其中,DROP [COLUMN] column_name指定要刪除的列名。
例如,下面的代碼演示了如何使用ALTER TABLE語句刪除表student_info中的address列:
ALTER TABLE student_info DROP COLUMN address;
以上代碼中,我們使用ALTER TABLE語句刪除了student_info表中的address列。
七、Hive給表添加一個字段
向Hive中已有的表添加一個字段,可以使用ALTER TABLE語句,並在語句中使用ADD COLUMN子句指定新增的列的信息。例如,下面的代碼演示了如何向student_info表中添加一列email:
ALTER TABLE student_info ADD COLUMN email STRING COMMENT '郵箱' AFTER phone DEFAULT 'No data';
以上代碼中,我們向student_info表中添加了email列,它的數據類型為STRING,注釋為‘郵箱’,在表格中的位置在phone之後,且默認值為‘No data’。
八、Hive修改表結構字段長度
若要修改Hive中表的結構,例如字段長度,需要使用ALTER TABLE語句。在語句中使用MODIFY COLUMN子句指定要修改的列名和新的數據類型即可。例如,下面的代碼演示了如何將student_info表中的電話號碼列長度改為15:
ALTER TABLE student_info MODIFY COLUMN phone STRING(15);
以上代碼中,我們使用修改語句將student_info表中的phone列的數據類型改為了STRING(15),表示phone列的長度限制為15個字符。
九、Hive增加字段時可以指定默認值嗎
在Hive中,對於新增字段,可以通過DEFAULT關鍵字來為其設置默認值。例如使用ALTER TABLE語句向表student_info中新增一列hobby,並為其指定默認值為‘No data’,示例如下:
ALTER TABLE student_info ADD COLUMN hobby STRING COMMENT ‘愛好’ AFTER gender DEFAULT 'No data';
以上代碼中,我們向student_info表中新增了一列hobby,並為其設置默認值為‘No data’。
總結
本文詳細介紹了Hive中增加字段的使用方法,包括使用ALTER TABLE語句和CREATE TABLE語句進行表結構修改、指定字段默認值、指定字段位置以及刪除字段。雖然本篇文章只針對Hive的增加字段進行了闡述,但是對於理解其他增刪改查語句也會有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/188370.html