后浪云impala教程:impala ALTER TABLE

Impala中的Alter table语句用于对给定表执行更改。 使用此语句,我们可以添加,删除或修改现有表中的列,也可以重命名它们。

本章通过语法和示例解释了各种类型的alter语句。 首先假设我们在Impala的my_db数据库中有一个名为customers的表,具有以下数据

ID   NAME     AGE   ADDRESS    SALARY
--- --------- ----- ----------- --------
1   Ramesh    32    Ahmedabad   20000
2   Khilan    25    Delhi       15000
3   Hardik    27    Bhopal      40000
4   Chaitali  25    Mumbai      35000
5   kaushik   23    Kota        30000
6   Komal     22    Mp          32000

并且,如果获取数据库my_db中的表列表,可以在其中找到customers表,如下所示。

[quickstart.cloudera:21000] > show tables;

Query: show tables 
+-----------+ 
| name      | 
+-----------+ 
| customers | 
| employee  | 
| student   | 
| student1  | 
+-----------+

更改表的名称

语法

ALTER TABLE重命名现有表的基本语法如下 –

ALTER TABLE [old_db_name.]old_table_name RENAME TO [new_db_name.]new_table_name

下面是使用alter语句更改表名称的示例。 这里我们将表客户的名称更改为用户。

[quickstart.cloudera:21000] > ALTER TABLE my_db.customers RENAME TO my_db.users;

执行上述查询后,Impala根据需要更改表的名称,并显示以下消息。

Query: alter TABLE my_db.customers RENAME TO my_db.users

您可以使用show tables语句验证当前数据库中的表的列表。 您可以找到名为users而不是customers的表。

Query: show tables 
+----------+ 
| name     | 
+----------+ 
| employee | 
| student  | 
| student1 | 
| users    | 
+----------+ 
Fetched 4 row(s) in 0.10s

向表中添加列

语法

ALTER TABLE向现有表中添加列的基本语法如下 –

ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])

以下查询是演示如何向现有表中添加列的示例。 这里我们在users表中添加两列account_no和phone_number(两者都是bigint数据类型)。

[quickstart.cloudera:21000] > ALTER TABLE users ADD COLUMNS (account_no BIGINT, 
phone_no BIGINT);

在执行上面的查询时,它会将指定的列添加到名为student的表中,并显示以下消息。

Query: alter TABLE users ADD COLUMNS (account_no BIGINT, phone_no BIGINT)

如果您验证表用户的模式,您可以在其中找到新添加的列,如下所示。

quickstart.cloudera:21000] > describe users;
 
Query: describe users 
+------------+--------+---------+ 
| name       | type   | comment | 
+------------+--------+---------+ 
| id         | int    |         | 
| name       | string |         | 
| age        | int    |         |
| address    | string |         | 
| salary     | bigint |         | 
| account_no | bigint |         | 
| phone_no   | bigint |         | 
+------------+--------+---------+ 
Fetched 7 row(s) in 0.20s

从表中删除列

语法

现有表中ALTER TABLE到DROP COLUMN的基本语法如下 –

ALTER TABLE name DROP [COLUMN] column_name

以下查询是从现有表中删除列的示例。 这里我们删除名为account_no的列。

[quickstart.cloudera:21000] > ALTER TABLE users DROP account_no;

在执行上面的查询时,Impala删除名为account的列,不显示以下消息。

Query: alter TABLE users DROP account_no

如果验证表用户的模式,则在删除之后,将找不到名为account_no的列。

[quickstart.cloudera:21000] > describe users; 

Query: describe users 
+----------+--------+---------+ 
| name     | type   | comment | 
+----------+--------+---------+ 
| id       | int    |         | 
| name     | string |         | 
| age      | int    |         | 
| address  | string |         | 
| salary   | bigint |         | 
| phone_no | bigint |         |
+----------+--------+---------+ 
Fetched 6 row(s) in 0.11s

更改列的名称和类型

语法

ALTER TABLE更改现有表中的列的名称和数据类型的基本语法如下 –

ALTER TABLE name CHANGE column_name new_name new_type

以下是使用alter语句更改列的名称和数据类型的示例。 这里我们将列phone_no的名称更改为电子邮件,将其数据类型更改为字符串。

[quickstart.cloudera:21000] > ALTER TABLE users CHANGE phone_no e_mail string;

在执行上述查询时,Impala执行指定的更改,显示以下消息。

Query: alter TABLE users CHANGE phone_no e_mail string

您可以使用describe语句验证表用户的元数据。 您可以观察到Impala已对指定的列进行了必要的更改。

[quickstart.cloudera:21000] > describe users; 
Query: describe users 
+----------+--------+---------+ 
| name     | type   | comment | 
+----------+--------+---------+ 
| id       | int    |         | 
| name     | string |         | 
| age      | int    |         | 
| address  | string |         | 
| salary   | bigint |         | 
| phone_no | bigint |         |
+----------+--------+---------+ 
Fetched 6 row(s) in 0.11s

使用Hue改变表

打开Impala查询编辑器并在其中键入alter语句,然后单击执行按钮,如下面的屏幕截图所示。

在执行上述查询时,它会将表customer的名称更改为用户。 以同样的方式,我们可以执行所有的alter查询。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/300433.html<

(0)
运维的头像运维
上一篇2025-05-23 21:04
下一篇 2025-05-23 21:05

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注