Hive SQL语法
时间: 2025-08-18 11:00:13 AIGC 浏览: 19
### Hive SQL 语法教程
#### DDL(数据定义语言)
Hive 的 DDL 命令用于管理数据库对象,如创建、删除和修改表。
- **建表**
创建新表可以使用 `CREATE TABLE` 语句。此命令允许指定列名及其相应的数据类型以及可选的注释[^1]。
```sql
CREATE TABLE employees (
id INT,
name STRING,
salary FLOAT COMMENT 'Employee monthly income'
);
```
- **删表**
删除现有表通过执行 `DROP TABLE` 实现。这会移除整个表格结构连同其元数据一起被清除。
```sql
DROP TABLE IF EXISTS employees;
```
- **改变表**
使用 `ALTER TABLE` 修改已存在的表属性或增加新的字段。例如重命名一张表或是向其中添加额外的一列[^2]。
```sql
-- 更改表名称
ALTER TABLE old_employees RENAME TO new_employees;
-- 添加一列
ALTER TABLE new_employees ADD COLUMNS (department STRING);
```
- **视图**
视图为虚拟表,它基于存储在其他表中的实际物理数据构建而成。可以通过简单的 `CREATE VIEW` 来建立视图。
```sql
CREATE VIEW v_employee AS SELECT * FROM employees WHERE department = 'Sales';
```
- **索引**
虽然 Hive 支持创建索引来加速某些类型的查询性能,但在实践中较少见因为大多数情况下并不推荐这样做由于维护成本较高。
- **展示**
列出当前数据库下的所有表可通过 `SHOW TABLES` 完成;而要查看特定模式的信息,则可以用 `DESCRIBE DATABASE` 或者更详细的版本加上关键字 EXTENDED[^4]。
```sql
SHOW TABLES;
DESCRIBE DATABASE my_database;
```
#### DML(数据操纵语言)
这些指令用来操作存储于表内的记录集。
- **文件导入**
将外部文件的数据批量载入到 Hive 表里通常借助 `LOAD DATA INPATH` 或者直接利用 HDFS 文件路径作为输入源[^3]。
```sql
LOAD DATA LOCAL INPATH '/path/to/local/file' OVERWRITE INTO TABLE employees;
```
- **从查询中将数据插入 Hive 表**
插入来自另一个查询的结果至目标表之中,可以选择覆盖原有内容 (`INSERT OVERWRITE`) 或追加新条目(`INSERT INTO`)。
```sql
INSERT OVERWRITE TABLE target_table SELECT * FROM source_table;
```
- **将查询结果
阅读全文
相关推荐
















