在 Apache Hive 中,数据操作语言(DML)操作用于查询和操作数据。以下是一些常用的 Hive DML 操作的示例:
插入数据
INSERT INTO TABLE employees VALUES (1, 'John Doe', 5000.0, 'IT');
这个操作会在 employees
表中插入一条新的记录。
批量插入数据
FROM employees
INSERT INTO TABLE employees_backup SELECT * WHERE department = 'IT';
这个操作会将 employees
表中 department
为 'IT'
的所有记录插入到 employees_backup
表中。
更新数据
UPDATE employees SET salary = salary * 1.1 WHERE department = 'IT';
这个操作会将 employees
表中 department
为 'IT'
的所有员工的工资增加 10%。
删除数据
DELETE FROM employees WHERE department = 'HR';
这个操作会删除 employees
表中 department
为 'HR'
的所有记录。
查询数据
SELECT name, salary FROM employees WHERE department = 'IT' ORDER BY salary DESC LIMIT 10;
这个操作会查询 employees
表中 department
为 'IT'
的员工的名字和工资,并按工资降序排列,只返回前 10 条记录。
联结表查询
SELECT e.name, d.dept_name
FROM employees e
JOIN departments d ON e.department_id = d.department_id;
这个操作会联结 employees
和 departments
表,根据 department_id
查询员工和他们所属的部门名称。
使用子查询
SELECT name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);
这个操作会查询工资高于平均工资的所有员工的名字和工资。
注意事项
- 在执行 DML 操作之前,请确保你有相应的权限。
- 更新和删除操作时要非常小心,因为它们可能会影响到大量的数据行。
- 使用子查询时,确保子查询的结果集是唯一的,以避免产生不正确的结果。