DDL—操作表

1.查询表

show tables;                //查询当前数据库下有哪些表的名称

desc 表名;                   //查询表结构

2.创建表

create table 表名(

                字段名1        数据类型1,

                字段名2        数据类型2,

                字段名3        数据类型3

);

3.删除表

drop table 表名;

drop table if exists 表名;

4.修改表

(1) 修改表名

alter table 表名 rename to 新表名;

(2) 添加一列

alter table 表名 add 列名 数据类型;

(3) 修改数据类型

alter table 表名 modify 列名 新数据类型;

(4)修改列名和数据类型

alter table 表名 change 列名 新列名 新数据类型;

(5)删除列

alter table 表名 drop 列名;

### HiveDDL操作概述 Hive中的数据定义语言(DDL)用于创建、修改和删除数据库对象,如数据库、、视图等。以下是一些常见的HiveDDL操作及其语法说明。 ### 创建 使用`CREATE TABLE`语句可以创建新。支持指定列名、数据类型、分隔符、存储格式以及位置等属性[^1]。 ```sql CREATE TABLE employees ( id INT, name STRING, salary DOUBLE, department STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE; ``` 外部可通过`EXTERNAL`关键字定义,其数据不归Hive管理,删除时不会删除原始数据文件[^1]。 ```sql CREATE EXTERNAL TABLE external_employees ( id INT, name STRING, salary DOUBLE ) LOCATION '/user/hive/external/employees'; ``` ### 查看结构 使用`DESCRIBE`命令查看的字段信息[^1]。 ```sql DESCRIBE employees; ``` 或使用`DESCRIBE FORMATTED`获取更详细的元数据信息,包括类型、位置、输入输出格式等[^1]。 ```sql DESCRIBE FORMATTED employees; ``` ### 修改 使用`ALTER TABLE`语句可对现有进行结构调整,例如重命名、添加/替换列等[^1]。 重命名: ```sql ALTER TABLE employees RENAME TO staff; ``` 添加列: ```sql ALTER TABLE employees ADD COLUMNS (hire_date STRING COMMENT '入职日期'); ``` 更改列名或类型(需注意兼容性): ```sql ALTER TABLE employees CHANGE COLUMN salary monthly_salary DOUBLE; ``` ### 删除 使用`DROP TABLE`删除定义及对应的数据(对于内部),外部仅删除元数据[^1]。 ```sql DROP TABLE IF EXISTS employees; ``` ### 分区操作 创建分区以提高查询性能,常用于按时间或类别划分大数据集[^1]。 ```sql CREATE TABLE sales ( order_id INT, amount DOUBLE ) PARTITIONED BY (dt STRING, region STRING) STORED AS ORC; ``` 添加静态分区: ```sql ALTER TABLE sales ADD PARTITION (dt='2024-01-01', region='north'); ``` 加载数据到指定分区: ```sql MSCK REPAIR TABLE sales; -- 恢复Hive元数据中缺失的分区 ``` ### 清除数据 Truncate操作可用于清空中所有行(不适用于外部或分区的整体截断)[^1]。 ```sql TRUNCATE TABLE employees; ``` ### 复制与CTAS 使用`CREATE TABLE AS SELECT`(CTAS)基于查询结果创建新[^1]。 ```sql CREATE TABLE high_salary_employees AS SELECT * FROM employees WHERE salary > 10000; ``` 该方式会自动推断目标的模式,但不复制源的分区、分桶等属性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值