Hive SQL基础语法及查询实践
目录
基础语法
1. 官网地址
2. 查询语句语法
基本查询(Select…From)
数据准备
(0)原始数据
(1)创建部门表
(2)创建员工表
(3)导入数据
全表和特定列查询
1. 全表查询
2. 选择特定列查询
列别名
1. 重命名一个列
2. 便于计算
3. 紧跟列名,也可以在列名和别名之间加入关键字 ‘AS’
案例实操
Limit语句
Where语句
1. 使用 WHERE 子句,将不满足条件的行过滤掉
2. WHERE 子句紧随 FROM 子句
案例实操
关系运算函数
1. 基本语法
逻辑运算函数
1. 基本语法(and/or/not)
2. 案例实操
聚合函数
1. 语法
2. 案例实操
基础语法
1. 官网地址
- Hive Language Manual Select
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Select
2. 查询语句语法
SELECT [ALL | DISTINCT] select_expr, select_expr, ...
FROM table_reference -- 从什么表查
[WHERE where_condition] -- 过滤
[GROUP BY col_list] -- 分组查询
[HAVING col_list] -- 分组后过滤
[ORDER BY col_list] -- 排序
[CLUSTER BY col_list| [DISTRIBUTE BY col_list] [SORT BY col_list]]
[LIMIT number] -- 限制输出的行数
基本查询(Select…From)
数据准备
(0)原始数据
-
在
/opt/module/hive/datas/路径上创建dept.txt文件,并赋值如下内容:部门编号 部门名称 部门位置id10 行政部 1700 20 财务部 1800 30 教学部 1900 40 销售部 1700 -
在
/opt/module/hive/datas/路径上创建emp.txt文件,并赋值如下内容:员工编号 姓名 岗位 薪资 部门7369 张三 研发 800.00 30 7499 李四 财务 1600.00 20 7521 王五 行政 1250.00 10 7566 赵六 销售 2975.00 40 7654 侯七 研发 1250.00 30 7698 马八 研发 2850.00 30 7782 金九 \N 2450.0 30 7788 银十 行政 3000.00 10 7839 小芳 销售 5000.00 40 7844 小明 销售 1500.00 40 7876 小李 行政 1100.00 10 7900 小元 讲师 950.00 30 7902 小海 行政 3000.00 10 7934 小红明 讲师 1300.00 30
(1)创建部门表
CREATE TABLE IF NOT EXISTS dept (deptno INT, -- 部门编号dname STRING, -- 部门名称loc INT -- 部门位置
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
(2)创建员工表
CREATE TABLE IF NOT EXISTS emp (empno INT, -- 员工编号ename STRING, -- 员工姓名job STRING, -- 员工岗位(大数据工程师、前端工程师、java工程师)sal DOUBLE, -- 员工薪资deptno INT -- 部门编号
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
(3)导入数据
LOAD DATA LOCAL INPATH '/opt/module/hive/datas/dept.txt' INTO TABLE dept;
LOAD DATA LOCAL INPATH '/opt/module/hive/datas/emp.txt' INTO TABLE emp;
全表和特定列查询
1. 全表查询
SELECT * FROM emp;
2. 选择特定列查询
SELECT empno, ename FROM emp;
注意:
- SQL 语言大小写不敏感。
- SQL 可以写在一行或者多行。
- 关键字不能被缩写也不能分行。
- 各子句一般要分行写。
- 使用缩进提高语句的可读性。
列别名
1. 重命名一个列
2. 便于计算
3. 紧跟列名,也可以在列名和别名之间加入关键字 ‘AS’
案例实操
查询名称和部门。
SELECT ename AS name, deptno dn
FROM emp;
Limit语句
典型的查询会返回多行数据。LIMIT 子句用于限制返回的行数。
SELECT * FROM emp LIMIT 5;
SELECT * FROM emp LIMIT 2, 3; -- 表示从第2行开始,向下抓取3行
Where语句
1. 使用 WHERE 子句,将不满足条件的行过滤掉
2. WHERE 子句紧随 FROM 子句
案例实操
查询出薪水大于1000的所有员工。
SELECT * FROM emp WHERE sal > 1000;
注意:WHERE 子句中不能使用字段别名。
关系运算函数
1. 基本语法
如下操作符主要用于 WHERE 和 HAVING 语句中。
| 操作符 | 支持的数据类型 | 描述 |
|---|---|---|
| A=B | 基本数据类型 | 如果A等于B则返回true,反之返回false |
| A<=>B | 基本数据类型 | 如果A和B都为null或者都不为null,则返回true,如果只有一边为null,返回false |
| A<>B, A!=B | 基本数据类型 | A或者B为null则返回null;如果A不等于B,则返回true,反之返回false |
| A<B | 基本数据类型 | A或者B为null,则返回null;如果A小于B,则返回true,反之返回false |
| A<=B | 基本数据类型 | A或者B为null,则返回null;如果A小于等于B,则返回true,反之返回false |
| A>B | 基本数据类型 | A或者B为null,则返回null;如果A大于B,则返回true,反之返回false |
| A>=B | 基本数据类型 | A或者B为null,则返回null;如果A大于等于B,则返回true,反之返回false |
| A [not] between B and C | 基本数据类型 | 如果A,B或者C任一为null,则结果为null。如果A的值大于等于B而且小于或等于C,则结果为true,反之为false。如果使用not关键字则可达到相反的效果。 |
| A is null | 所有数据类型 | 如果A等于null,则返回true,反之返回false |
| A is not null | 所有数据类型 | 如果A不等于null,则返回true,反之返回false |
| in(数值1,数值2) | 所有数据类型 | 使用 in运算显示列表中的值 |
| A [not] like B | string 类型 | B是一个SQL下的简单正则表达式,也叫通配符模式,如果A与其匹配的话,则返回true;反之返回false。B的表达式说明如下:‘x%’表示A必须以字母‘x’开头,‘%x’表示A必须以字母‘x’结尾,而‘%x%’表示A包含有字母‘x’,可以位于开头,结尾或者字符串中间。如果使用not关键字则可达到相反的效果。 |
| A rlike B, A regexp B | string 类型 | B是基于java的正则表达式,如果A与其匹配,则返回true;反之返回false。匹配使用的是JDK中的正则表达式接口实现的,因为正则也依据其中的规则。例如,正则表达式必须和整个字符串A相匹配,而不是只需与其字符串匹配。 |
逻辑运算函数
1. 基本语法(and/or/not)
| 操作符 | 含义 |
|---|---|
| and | 逻辑并 |
| or | 逻辑或 |
| not | 逻辑否 |
2. 案例实操
- 查询薪水大于1000,部门是30
SELECT *
FROM emp
WHERE sal > 1000 AND deptno = 30;
- 查询薪水大于1000,或者部门是30
SELECT *
FROM emp
WHERE sal > 1000 OR deptno = 30;
- 查询除了20部门和30部门以外的员工信息
SELECT *
FROM emp
WHERE deptno NOT IN (30, 20);
聚合函数
1. 语法
count(*),表示统计所有行数,包含null值;count(某列),表示该列一共有多少行,不包含null值;max(),求最大值,不包含null,除非所有值都是null;min(),求最小值,不包含null,除非所有值都是null;sum(),求和,不包含null。avg(),求平均值,不包含null。
2. 案例实操
- 求总行数(count)
SELECT COUNT(*) cnt FROM emp;
hive sql执行过程:
- 求工资的最大值(max)
SELECT MAX(sal) max_sal FROM emp;
hive sql执行过程:

- 求工资的最小值(min)
SELECT MIN(sal) min_sal FROM emp;
hive sql执行过程:

- 求工资的总和(sum)
SELECT SUM(sal) sum_sal FROM emp;
hive sql执行过程:

- 求工资的平均值(avg)
SELECT AVG(sal) avg_sal FROM emp;
hive sql执行过程:
相关文章:
Hive SQL基础语法及查询实践
目录 基础语法 1. 官网地址 2. 查询语句语法 基本查询(Select…From) 数据准备 (0)原始数据 (1)创建部门表 (2)创建员工表 (3)导入数据 全表和特定列查…...
k8s service如何实现流量转发
1 基本概念 Service:在Kubernetes(K8s)中,Service用于将流量转发到后端的Pod中。Service提供了一种稳定的网络入口,尽管后端的Pod可能会动态改变 kube-proxy: kube-proxy是Kubernetes集群中的核心组件之一࿰…...
每日一练:K个一组翻转链表
25. K 个一组翻转链表 - 力扣(LeetCode) 一、题目要求 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#x…...
昨晚,OpenAI震撼发布o1大模型!我们正式迈入了下一个时代。
大半夜的,OpenAI抽象了整整快半年的新模型。 在没有任何预告下,正式登场。 正式版名称不叫草莓,草莓只是内部的一个代号。他们的正式名字,叫: 为什么取名叫o1,OpenAI是这么说的: For complex …...
MySql8.x---开窗函数
1、定义 语法结构: ** 开窗函数|聚合函数 over([分组函数] [排序函数] [自定义窗口]) ** 分组函数:partition by ...,根据指定的字段对表分组,分组字段可以有多个。省略时表示整个表为一组。 排序函数:order by ...&…...
图文讲解HarmonyOS应用发布流程
HarmonyOS应用的开发和发布过程可以分为以下几个步骤:证书生成、应用开发、应用签名和发布。 1. 证书生成: 在开始开发HarmonyOS应用之前,首先需要生成一个开发者证书。开发者证书用于标识应用的开发者身份并确保应用的安全性。可以通过Har…...
【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)
原文链接: https://tecdat.cn/?p37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预…...
经典负载调制平衡放大器(LMBA)设计-从理论到ADS仿真
经典负载调制平衡放大器(LMBA)设计-从理论到ADS仿真 ADS工程下载:经典负载调制平衡放大器(LMBA)设计-从理论到ADS仿真-ADS工程 参考论文: An Efficient Broadband Reconfigurable Power Amplifier Using Active Load…...
Web开发:基础Web开发的支持
创建项目: 添加依赖: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://mav…...
【LeetCode每日一题】——LCR 168.丑数
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目注意】六【题目示例】七【题目提示】八【解题思路】九【时间频度】十【代码实现】十一【提交结果】 一【题目类别】 优先队列 二【题目难度】 中等 三【题目编号】 LCR 168.丑数 四【题目描述…...
Day7 | Java框架 | SpringMVC
Day7 | Java框架 | SpringMVC SpringMVC简介SpringMVC 概述入门案例入门案例工作流程分析Controller 加载控制与业务bean加载控制(SpringMVC & Spring)PostMan 请求与响应请求映射路径请求方式(不同类型的请求参数)࿱…...
【网络通信基础与实践第二讲】包括互联网概述、互联网发展的三个阶段、互联网的组成、计算机网络的体系结构
一、互联网概述 计算机网络是由若干节点(node)和连接这些节点的链路(link)组成。 网络之间还可以通过路由器互联起来,这就构成了一个覆盖范围更大的计算机网络。这样的网络称为互联网。 网络把许多计算机连接在一起…...
CentOS7下安装Ruby3.2.4的实施路径
一、CentOS版本 [userzt ~]$ cat /etc/os-release NAME"CentOS Linux" VERSION"7 (Core)" ID"centos" ID_LIKE"rhel fedora" VERSION_ID"7" PRETTY_NAME"CentOS Linux 7 (Core)" ANSI_COLOR"0;31" CPE…...
Redis 实现原理或机制
Redis 是一个高性能的、基于内存的键值对存储系统,广泛用于缓存、会话管理、排行榜和消息队列等场景。它的高效性得益于其独特的实现原理和机制,Redis支持丰富的数据结构和多种持久化、复制、集群和发布/订阅功能,提供了灵活性和高可用性。 …...
使用程序方式获取与处理MySQL表数据
8.1 执行多条语句获取 MySQL 表数据 8.1.1 MySQL 中的常量 8.1.2 MySQL 中的变量 1.用户变量 用户可以在表达式中使用自己定义的变量,这样的变量称为用户变量。 用户变量在使用前必须定义和初始化,如果使用没有初始化的变量&#x…...
计算机网络(五) —— 自定义协议简单网络程序
目录 一,关于“协议” 1.1 结构化数据 1.2 序列化和反序列化 二,网络版计算器实现准备 2.1 套用旧头文件 2.2 封装sock API 三,自定义协议 3.1 关于自定义协议 3.2 实现序列化和反序列化 3.3 测试 三,服务器实现 3.1…...
开源模型应用落地-qwen2-7b-instruct-LoRA微调-unsloth(让微调起飞)-单机单卡-V100(十七)
一、前言 本篇文章将在v100单卡服务器上,使用unsloth去高效微调QWen2系列模型,通过阅读本文,您将能够更好地掌握这些关键技术,理解其中的关键技术要点,并应用于自己的项目中。 使用unsloth能够使模型的微调速度提高 2 - 5 倍。在处理大规模数据或对时间要求较高的场景下,…...
[数据集][目标检测]车油口挡板开关闭合检测数据集VOC+YOLO格式138张2类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):138 标注数量(xml文件个数):138 标注数量(txt文件个数):138 标注类别…...
Delphi 的 RSA 库 LockBox
LockBox 是用于 Delphi 的一套加密/解密控件 最早是一套商业控件,后来开源了。再后来,又有一个新版本的 LockBox,和旧版本完全不同。 旧版本的 LockBox 叫 LockBox 2;新版本的叫 LockBox 3。 这两个控件,都可以通过…...
element UI学习使用(1)
https://element.eleme.cn/2.6/#/zh-CN/component/container vue模块库,可复制直接使用 1、搜索框、下拉搜索框 <el-form :inline"true" class"demo-form-inline"><el-form-item label"结果搜索"><el-inputplaceho…...
告别PDF编辑难题:pdf2docx智能转换工具深度解析
告别PDF编辑难题:pdf2docx智能转换工具深度解析 【免费下载链接】pdf2docx Open source Python library converting pdf to docx. 项目地址: https://gitcode.com/gh_mirrors/pd/pdf2docx 还在为无法编辑PDF文档而烦恼吗?是否遇到过需要修改PDF内…...
如何用Python处理杭州交通数据集?从roadnet.json到flow.json的完整解析指南
杭州交通数据实战:用Python解析roadnet.json与flow.json的进阶技巧 第一次接触杭州交通数据集时,我被roadnet.json里密密麻麻的交叉点坐标和flow.json中流动的车辆轨迹震撼到了——这哪是数据文件,分明是一座数字孪生城市的血管与血液。作为算…...
电商老板必看:用Excel的IF和VLOOKUP函数,轻松算出你的新老客户利润贡献比
电商精细化运营:用Excel透视新老客户利润贡献的实战指南 对于中小电商企业主来说,理解客户结构是精细化运营的第一步。你可能没有专业的BI工具,但Excel这个看似普通的办公软件,却能帮你挖掘出惊人的商业洞察。本文将带你一步步构建…...
lite-avatar形象库保姆级教学:从CSDN控制台创建GPU实例到数字人上线全过程
lite-avatar形象库保姆级教学:从CSDN控制台创建GPU实例到数字人上线全过程 桦漫AIGC集成开发 | 微信: henryhan1117 1. 开篇:为什么选择lite-avatar形象库? 如果你正在寻找高质量的数字人形象,但又不想从零开始训练模型ÿ…...
终极指南:如何用qmc-decoder轻松解锁QQ音乐加密文件
终极指南:如何用qmc-decoder轻松解锁QQ音乐加密文件 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾经从QQ音乐下载了喜爱的歌曲,却发现只能…...
微信聊天记录导出终极指南:免费工具WeChatExporter完整使用教程
微信聊天记录导出终极指南:免费工具WeChatExporter完整使用教程 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否担心珍贵的微信聊天记录会因手机更换或…...
NOJ编程竞赛中的五大常见错误类型及高效调试技巧
1. NOJ编程竞赛错误类型全景解析 第一次参加NOJ在线编程竞赛时,看到满屏的WA、CE、RE、TE错误提示,我整个人都是懵的。直到后来在实战中踩过无数坑,才发现这些错误其实都有规律可循。最常见的五大错误类型就像编程路上的五个拦路虎࿰…...
Transformer回顾与BERT模型学习:小白程序员必备收藏指南
本文首先回顾了Transformer模型的基本结构和输入方式,包括词嵌入和位置编码。接着介绍了BERT模型架构,作为Transformer的改进版本,BERT只保留编码器部分,并详细解释了其不同版本的结构特点。文章还讨论了BERT的输入表示࿰…...
生物信息学新手必看:BBmap比对工具从安装到实战全流程指南
生物信息学新手必看:BBmap比对工具从安装到实战全流程指南 第一次接触生物信息学数据分析时,面对海量的测序数据往往会感到无从下手。比对工具的选择尤为关键——既要保证准确性,又要兼顾效率。BBmap作为BBTools套件中的核心工具,…...
BG3ModManager全攻略:从基础配置到故障解决的模组管理大师之路
BG3ModManager全攻略:从基础配置到故障解决的模组管理大师之路 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 一、基础配置:搭建你的模组管理中心 让游戏与工具…...
