3.3 表结构操作DDL

增删改查

1.增(create)

create table 表名 (
	字段名 字段类型 约束 [comment '备注'],
	字段名 字段类型 约束 [comment '备注']);

其中,
字段类型: int整型,varchar(大小)字符串…
数值类型:
请添加图片描述
字符串:
请添加图片描述
时间类:
请添加图片描述

约束:

约束关键字
非空约束not null
唯一约束unique
主键约束primary key 【auto_increment自动升序默认填写】
默认约束default
外键约束foreign key

2.删(drop)

drop table [if exists] 表名;

3.改(alter)

-- add
alter table 表名 add 字段名 字段类型 [约束] comment '描述信息';
-- drop column
alter table 表名 drop column 字段名 comment '描述信息';
-- modify/change(区别在于名字是否也修改)
alter table 表名 modify 字段名 新字段类型 comment '描述信息';
alter table 表名 change 字段名 新字段名 字段类型 [约束] comment '描述信息';
-- 修改表名
rename table 表名 to 新表名;

4.查(show/desc)

-- 查看当前数据库下的表
show tables;
-- 查看:数据库的建表语句
show create table 表名;
-- 查看指定表结构
desc 表名;
<think>好的,我现在需要帮助用户找到关于Hive表DDL操作的教程或答案。用户提到了创建、修改、删除表的操作,我需要整理相关的信息,并且根据提供的引用内容来支持回答。 首先,我得回顾Hive的DDL操作基本知识。DDL指的是数据定义语言,主要用于创建、修改和删除数据库对象,比如表和数据库。根据用户提供的引用,特别是引用[2]和[4],里面提到了修改表和创建数据库的例子,比如ALTER TABLE重命名表,以及创建数据库时的LOCATION和属性设置。 接下来,创建表的部分,Hive有CREATE TABLE语句,可以指定内部表或外部表。引用[1]中提到了删除外部表的例子,使用DROP TABLE,这说明外部表和内部表在删除时的行为不同,外部表删除时数据不会被删除,而内部表会。所以在教程中需要区分这两种表的创建方式。 关于修改表,引用[2]提到ALTER TABLE用于重命名、添加列、修改列等操作。例如,重命名表的语法是ALTER TABLE table_name RENAME TO new_table_name。此外,可能还需要包括添加列、修改列类型或注释的操作,不过用户提供的引用中没有详细例子,可能需要结合其他知识补充。 删除表方面,引用[1]和[3]都提到了DROP TABLE命令,但引用[3]还指出删除表时如果卡死,需要检查配置项hive.metastore.schema.verification是否为true。这可能涉及到元数据验证的问题,所以在教程中应该提醒用户注意这一点,避免操作时遇到问题。 另外,引用[4]给出了创建数据库的例子,包括设置位置和属性,然后修改属性,最后删除数据库。虽然用户主要关注表的操作,但数据库的创建和删除也是相关的,可能需要在教程中简要提及,以保持完整性。 用户可能需要具体的语法示例和操作步骤。例如,创建外部表需要用到EXTERNAL关键字,并指定LOCATION。修改表结构可能需要使用ALTER TABLE ADD COLUMNS等子句。删除表时,需区分外部表和内部表的差异。 还要注意Hive的语法和配置问题,如引用[3]提到的配置项可能影响删除操作的成功与否。这些细节对于用户解决问题很重要,应该包含在教程中,帮助用户避免常见错误。 最后,生成相关问题时要围绕DDL操作,例如性能优化、应用场景或常见问题处理。例如,如何优化表的创建,或处理删除表时的问题。 总结一下,我需要将Hive表的DDL操作分为创建、修改、删除三个部分,每个部分给出语法示例和注意事项,并引用提供的资料作为支持。同时,确保使用正确的中文表达和LaTeX格式,按照用户的要求组织内容。</think># Hive表DDL操作教程 ## 一、创建表操作 ### 1.1 基本语法 ```sql CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name ( col_name data_type [COMMENT col_comment], ... ) [PARTITIONED BY (col_name data_type...)] [CLUSTERED BY (col_name)...] [ROW FORMAT row_format] [STORED AS file_format] [LOCATION hdfs_path] ``` ### 1.2 内部表与外部表 - **内部表**:默认类型,删除时元数据和数据都删除 ```sql CREATE TABLE employees(id INT, name STRING); ``` - **外部表**:删除时仅删除元数据[^1] ```sql CREATE EXTERNAL TABLE logs ( event_time TIMESTAMP, content STRING ) LOCATION &#39;/user/hive/warehouse/logs&#39;; ``` ## 二、修改表操作 ### 2.1 表重命名 ```sql ALTER TABLE old_name RENAME TO new_name; -- 引用[2] ``` ### 2.2 列操作 ```sql -- 添加新列 ALTER TABLE employees ADD COLUMNS (age INT); -- 修改列名/类型 ALTER TABLE employees CHANGE COLUMN id emp_id STRING; ``` ### 2.3 分区操作 ```sql -- 添加分区 ALTER TABLE logs ADD PARTITION (dt=&#39;2023-10-01&#39;); -- 删除分区 ALTER TABLE logs DROP PARTITION (dt=&#39;2023-10-01&#39;); ``` ## 三、删除表操作 ### 3.1 普通删除 ```sql DROP TABLE [IF EXISTS] table_name; -- 引用[1] ``` ### 3.2 清空表数据 ```sql TRUNCATE TABLE table_name; -- 引用[3] ``` ### 3.3 注意事项 当删除操作卡顿时,需检查配置参数: ```xml <property> <name>hive.metastore.schema.verification</name> <value>true</value> </property> -- 引用[3] ``` ## 四、数据库操作示例 ```sql -- 创建数据库 CREATE DATABASE IF NOT EXISTS test1 LOCATION &#39;/hive/test1&#39; WITH DBPROPERTIES(&#39;creator&#39;=&#39;John&#39;,&#39;date&#39;=&#39;2019-02-25&#39;); -- 引用[4] -- 修改数据库属性 ALTER DATABASE test1 SET DBPROPERTIES(&#39;creator&#39;=&#39;Marry&#39;); -- 引用[4] -- 删除数据库 DROP DATABASE test1; -- 引用[4] ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值