诗林 发表于 2025-6-2 02:53:10

手把手教你学 Hive SQL:从零基础到实战入门(超具体版)

目录
一、Hive SQL 是什么?先搞懂这 3 个灵魂问题
1. 为什么要学 Hive SQL?
2. 适合谁学?
3. 先记牢 3 个焦点概念
二、数据库操纵:先学会建「大文件夹」
1. 创建数据库:新建一个大文件夹
2. 切换数据库:进入某个文件夹
3. 删除数据库:删掉整个文件夹
三、表操纵:学会创建和管理「大表格」
1. 创建内部表:Hive 帮你管理数据(常用)
2. 创建外部表:数据存在 Hive 外面(适合共享)
3. 创建分区表:给表格分格子(查得快)
四、数据插入:往表格里填数据
1. 从当地文件批量导入(常用)
2. 手动插入少量数据(临时用)
3. 从其他表复制数据(高级用法)
五、基础查询:从表格里找数据
1. 查所有数据:看看表格长啥样
2. 查指定字段:只看必要的列
3. 条件查询:筛选符合条件的数据
4. 去重查询:去掉重复数据
5. 排序与分页:让数据排好队
六、聚合函数:对数据做统计(必学!)
1. 统计行数:有多少条数据
2. 求总和与平均值:算总分、平均分
3. 求最大值 / 最小值:谁的成绩最高?
七、分组查询:按类别统计(超重要!)
1. 按单个字段分组:比如按年龄分组
2. 按多个字段分组:比如按年龄 + 性别
3. 过滤分组结果:HAVING 子句(重点!)
八、常见错误提醒:新手必看!
1. 字段名写错
2. 分区表没加分区条件(严酷模式下会报错)
3. HAVING 里用了字段别名(不允许!)
九、总结:3 步搞定 Hive SQL 基础
十、动手练习:马上实操 3 个小案例
案例 1:查询成绩大于 80 分的弟子姓名和成绩
案例 2:按年龄分组,统计每组人数,并筛选人数凌驾 30 的组
案例 3:计算所有弟子的平均成绩
结语:小白也能轻松入门!

一、Hive SQL 是什么?先搞懂这 3 个灵魂问题

1. 为什么要学 Hive SQL?



[*]Hive:是基于 Hadoop 的「数据堆栈工具」,能把海量数据存成「大表格」
[*]SQL:布局化查询语言,用来操纵表格数据(增删改查)
[*]Hive SQL:专门用来操纵 Hive 里的大表格,语法和 Excel/MySQL 的 SQL 很像,但能处理 TB 级数据!
2. 适合谁学?



[*]完全不懂编程的「数据分析小白」
[*]会 Excel 想进阶大数据的「职场新人」
[*]学过 MySQL 想拓展大数据技能的「开发新手」
3. 先记牢 3 个焦点概念

概念类比现实作用数据库文件夹用来存放多个表格(如:弟子库、贩卖库)表Excel 表格存放具体数据(如:弟子表、课程表)字段Excel 列标题表格的列(如:id、姓名、成绩) 二、数据库操纵:先学会建「大文件夹」

1. 创建数据库:新建一个大文件夹

CREATE DATABASE IF NOT EXISTS my_db;
-- 拆解:
-- CREATE DATABASE:创建数据库(类比新建文件夹)
-- IF NOT EXISTS:如果数据库不存在才创建(避免报错)
-- my_db:数据库名称(自己取,只能用字母数字)
2. 切换数据库:进入某个文件夹

USE my_db;
-- 作用:告诉Hive接下来要操作哪个数据库里的表
-- 类比:打开"my_db"这个文件夹,准备操作里面的表格
3. 删除数据库:删掉整个文件夹

DROP DATABASE IF EXISTS my_db CASCADE;
-- 关键参数:
-- CASCADE:强制删除(如果里面有表,必须加这个,否则会报错)
-- 类比:删除文件夹时,连里面的文件一起删掉
三、表操纵:学会创建和管理「大表格」

1. 创建内部表:Hive 帮你管理数据(常用)

CREATE TABLE students (
stu_id INT,      -- 学生ID,整数类型
stu_name STRING,   -- 学生姓名,字符串类型
age INT,         -- 年龄,整数类型
score DOUBLE       -- 成绩,小数类型
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','-- 字段之间用逗号分隔(如:1,张三,18,90.5)
STORED AS TEXTFILE;       -- 数据存成文本文件(最简单的格式)
2. 创建外部表:数据存在 Hive 外面(适合共享)

CREATE EXTERNAL TABLE external_students (
stu_id INT,
stu_name STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'-- 字段用制表符分隔(像Excel的列间隔)
LOCATION '/hive/external_data';-- 数据存在HDFS的这个路径下
页: [1]
查看完整版本: 手把手教你学 Hive SQL:从零基础到实战入门(超具体版)