08 | Hive基本查询语法

Hive Sql 大全(1) 一、DDL语句(数据定义语句): 对数据库的操作:包含创建、修改数据库 对数据表的操作:分为内部表及外部表,分区表和分桶表 二、DQL语句(数据查询语句): 单表查询、关联查询 hive函数:包含聚合函数,条件函数,日期函数,字符串函数等 行转列及列转行:lateral view 与 explode 以及 reflect 窗口函数与分析函数 其他一些窗口函数 阅读详情

6.1 基础语法

1)官网地址

LanguageManual Select - Apache Hive - Apache Software Foundation

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]                -- 限制输出的行数

6.2 基本查询(Select…From)

6.2.1 数据准备

(0)原始数据

①在/opt/module/hive/datas/路径上创建dept.txt文件,并赋值如下内容:

部门编号 部门名称 部门位置id

[atguigu@hadoop102 datas]$ vim dept.txt

10 行政部  1700

20 财务部  1800

30 教学部  1900

40 销售部  1700

②在/opt/module/hive/datas/路径上创建emp.txt文件,并赋值如下内容:

员工编号 姓名 岗位    薪资  部门

[atguigu@hadoop102 datas]$ vim 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)创建部门表

hive (default)>

create table if not exists dept(

    deptno int,    -- 部门编号

    dname string,  -- 部门名称

    loc int        -- 部门位置

)

row format delimited fields terminated by '\t';

(2)创建员工表

hive (default)>

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)导入数据

hive (default)>

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;

6.2.2 全表和特定列查询

1)全表查询

hive (default)> select * from emp;

2)选择特定列查询

hive (default)> select empno, ename from emp;

注意:

(1)SQL 语言大小写不敏感。

(2)SQL 可以写在一行或者多行。

(3)关键字不能被缩写也不能分行。

(4)各子句一般要分行写。

(5)使用缩进提高语句的可读性。

6.2.3 列别名

1)重命名一个列

2)便于计算

3)紧跟列名,也可以在列名和别名之间加入关键字‘AS’

4)案例实操

查询名称和部门。

hive (default)>

select

    ename AS name,

    deptno dn

from emp;

6.2.4 Limit语句

典型的查询会返回多行数据。limit子句用于限制返回的行数。

hive (default)> select * from emp limit 5;

hive (default)> select * from emp limit 2,3; -- 表示从第2行开始,向下抓取3行

6.2.5 Where语句

1)使用where子句,将不满足条件的行过滤掉

2)where子句紧随from子句

3)案例实操

查询出薪水大于1000的所有员工。

hive (default)> select * from emp where sal > 1000;

注意:where子句中不能使用字段别名。

6.2.6 关系运算函数

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相匹配,而不是只需与其字符串匹配。

6.2.7 逻辑运算函数

1)基本语法(and/or/not)

操作符

含义

and

逻辑并

or

逻辑或

not

逻辑否

2)案例实操

(1)查询薪水大于1000,部门是30

hive (default)>

select

    *

from emp

where sal > 1000 and deptno = 30;

(2)查询薪水大于1000,或者部门是30

hive (default)>

select

    *

from emp

where sal>1000 or deptno=30;

(3)查询除了20部门和30部门以外的员工信息

hive (default)>

select

    *

from emp

where deptno not in(30, 20);

6.2.8 聚合函数

1)语法

count(*),表示统计所有行数,包含null值;

count(某列),表示该列一共有多少行,不包含null值;

max(),求最大值,不包含null,除非所有值都是null;

min(),求最小值,不包含null,除非所有值都是null;

sum(),求和,不包含null。

avg(),求平均值,不包含null。

2)案例实操

(1)求总行数(count)

hive (default)> select count(*) cnt from emp;

hive sql执行过程:

(2)求工资的最大值(max)

hive (default)> select max(sal) max_sal from emp;

hive sql执行过程:

(3)求工资的最小值(min)

hive (default)> select min(sal) min_sal from emp;

hive sql执行过程:

(4)求工资的总和(sum)

hive (default)> select sum(sal) sum_sal from emp;

hive sql执行过程:

(5)求工资的平均值(avg)

hive (default)> select avg(sal) avg_sal from emp;

hive sql执行过程:

hiveSQL语法 分桶就是将这个128M的文件拆分成多个文件来存储,例如拆分成四个桶文件,那么计算的时候就会有4个reduce参与数据的计算和整合,那么数据的计算速度就会变快。直接创建表格,指定了对应的目录,也读取不到数据,因为表格是个分区表,只有表格的结构,没有分区的结构。假如有一个表格,只有一个文件,文件是128M,计算的时候将这个文件当成一个整体,使用一个map和一个reduce进行数据统计的;hive数据库所有的sql操作都是高延迟的,如果操作的数据量小于128M,那么我们可以去启动本地设置的开关,加快数据的操作。 阅读详情

相关推荐

hive 基本语法

*不会在HDFS对数据库所在目录进行改名,只是修改location后,新创建的表在新的路径,旧的不变**虚拟列是Hive内置的可以在查询语句中使用的特殊标记,可以查询数据本身的详细参数。**分桶表无法使用LOAD DATA进行数据加载****分区所在的HDFS文件夹依旧保留**将其它表数据,加载到目标表。数值、集合、转换、日期函数。

学无止境 2458

一文学完所有的Hive SQL(两万字最全详解)

Hive SQL 大全本文基本涵盖了Hive日常使用的所有SQL,因为SQL太多,所以将SQL进行了如下分类:一、DDL语句(数据定义语句):对数据库的操作:包含创建、修改数据库对数据表的操作:分为内部表及外部表,分区表和分桶表二、DQL语句(数据查询语句):单表查询、关联查询hive函数:包含聚合函数,条件函数,日期函数,字符串函数等行转列及列转行:lateral view 与 explode ...

大数据星球-浪尖 1万+

能量机关 STM32HAL库开发大疆A板WS2812B彩灯(PWM+DMA)

本文主要目的是为了制作RoboMaster比赛能量机关的灯条控制,模拟比赛场中大符,搭建出类似场地道具,以供视觉测试 使用的是RoboMaster开发板A型,芯片为STM32F427IIH6,使用的灯条为WS2812B。 采用PWM+DMA控制,使用CUBEMX配置底层,keil5编辑烧录代码 实现:一共五片扇叶,每片扇叶均实现流水灯+常亮颜色 参考文章在后面会标记出来

m0_51756449的博客 4289

HiveSQL

HiveSQL Hive Sql 入门教程基础关键字用法 前置教程 hive库表知识 hive库是表的一个集合,一个库拥有多个表,hive整个数据库拥有多个库。 hive表代表一个对象,比如一个人设计为一个表就有身高体重等属性,在hive 中实际存储表现为每张表会有一个存储地址,比如表名为people,实际存储会有 hive中的分区概念 /xx/xx/people,hive中引用了一个很重要的概念分区,分区实际上也是这个表的字段,反映在 实际存储中通常以天为分区,存储在址为/xx/xx/peopl

qq_43528451的博客 1万+

VFIO框架源码分析(二十一)- IOMMUFD 模式下的 DMA 映射机制

在虚拟化 I/O 的世界里,无论上层管理面(如对象模型、设备绑定)如何重构,数据面最核心的任务始终未变——DMA 映射(DMA Mapping)。即如何建立 Guest Physical Address (GPA) 到 Host Physical Address (HPA) 的映射关系,并将其填入 IOMMU 的硬件页表中,使得直通设备能够正确访问虚拟机内存。在 Legacy VFIO (Type1) 时代,这一职责由承担,它通过ioctl 操作 Container。

qq_36071928的博客 1007

瑞芯微RK3506开发板DSM音频开发避坑指南:从硬件改接到内核配置全流程

本文详细解析了在瑞芯微RK3506开发板上进行DSM音频开发的完整流程与关键避坑点。内容涵盖从硬件改造(如电阻焊接)、内核驱动配置(DTS参数、补丁应用)到系统调试与波形分析的全过程,旨在帮助嵌入式开发者高效实现高信噪比、低成本的音频方案,避免常见错误。

weixin_29164091的博客 406

Oracle与Hive语法对比

在将oracle语法逻辑迁移到hive或者将hive语法逻辑迁移到oracle时,我们会面临语法不互通的问题,此时就需要了解语法逻辑进行转换加工之后才能以另外一种语法的逻辑实现. Oracle与Hive区别 oracle是数据库,而hive是数据仓库,二者最大的区别就在于存储和计算.oracle数据库是支持存储计算功能的,Hive是基于hadoop的数据仓库工具,hive本身没有存储和计算能力,完...

Sunshine_Bloom的博客 1万+

CMap与L1000技术解析:基因表达数据在药物发现中的应用

本文深入解析了CMap(连接图)与L1000技术在药物发现中的核心应用。CMap通过构建基因表达“关系网”,实现基于模式匹配的药物重定位;L1000技术则以低成本、高通量方式生成关键基因表达数据,支撑了LINCS超级数据库。文章以CLUE平台为例,手把手演示了如何利用疾病基因表达签名逆向筛选潜在治疗化合物,并拓展了其在解析药物机制、预测副作用等多场景下的价值。

weixin_29207533的博客 727

Hive SQL 语法(超全超详细)

Hive SQL 语法

ksksksj的博客 5122

HDMI采集芯片 ADV7611采集PC数据调试总结

开发环境:TI DM365 平台, ADV7611采集板, CCS5.5 第一步:I2C调通 这张是 ADV7611 读写的时序图,可以看出在写和读的时候发送地址数据的时候的停止位信息是不同的,在写的时候是不需要停止位的,但是读的时候是要停止位的。如果I2C在硬件没问题的时候可以考虑是不是这方面的问题。 第二步:map 配置: 根据官方推荐配置进行配置:   0x98,

带头奋青的博客 1万+

基于STM32、HAL库的ZMOD4510AI4R气体传感器驱动程序设计

ZMOD4510AI4R是Renesas公司推出的一款数字空气质量传感器,主要用于检测臭氧(O₃)和总挥发性有机化合物(TVOC)浓度。(status & 0x80)) // 检查数据就绪位。// 等待测量完成 (实际应用中应该使用非阻塞方式)// 转换为ppb (简化转换,实际应根据传感器文档校准)* @param hzmod: ZMOD4510句柄。* @param tvoc: TVOC浓度(ppb)* @param ozone: 臭氧浓度(ppb)* @param hi2c: I2C句柄。

corlin6688的博客 311

6.hive查询语法

6.hive查询语法

weixin_46556352的博客 374

2026工控高薪:C#上位机面试15题(含答案)

基础岗(10-15K):考察串口/Modbus/PLC通信基础;资深岗(20-30K):考察工业级优化(抗干扰/断线重连)、物联网(MQTT)、跨协议整合;架构岗(30K+):考察上位机架构设计、边缘计算、项目落地避坑。我整理了2026年近20场高薪岗位(月薪20K+)的面试高频题,筛选出15道核心题,每题标注“考察点+实战答案”——答案拒绝纯理论,全部结合车间现场、PLC通信、物联网落地等真实场景,帮你避开“背答案但不落地”的面试坑。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1273

Hive08_分区表

分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive 中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过 WHERE 子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。

tonyshi1989的博客 1901

XILINX RFSoC全面解析(五)—— Zynq UItrascale+ RF Data Converter IP核详解

这期我们来看看RFSoC独有的IP核——Zynq UItrascale+ RF Data Converter如何使用。 我使用的VIVADO版本是2018.3,这个是最低版本,要开发RFSoC,VIVADO版本必须不低于2018.3。 另外电脑配置也需要很高,64位,8核@3.4GHz CPU,16GB内存,固态硬盘基本就是低配,跑起来很勉强。建议有条件的朋友使用工作站或者服务器。 首先在VIVADO中新建一个工程,因为我使用的是xilinx官方的开发板,所以可以直接设定选board就行。 在I

1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

hive 语法检查_升级Hive3处理语义和语法变更

由于在CDH或HDP中运行的Hive的早期版本与CDP中的Hive 3之间的语义变化,您需要执行许多与迁移相关的更改。Hive 3中与db.table引用和DROP CASCADE相关的一些语法更改可能需要对应用程序进行更改。转换时间戳将数字转换为时间戳的应用程序的结果从Hive 2到Hive 3有所不同。ApacheHive更改了CAST的行为以符合SQL标准,该标准不将时区与TIME...

weixin_29338361的博客 919

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【Python大数据笔记_day08_hive查询】

hive中的表操作

LKL的博客 723

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Hive的基本语法

一、建库 create database 库名 show databases; 显示所有数据库 drop database 库名 删除数据库 use 库名 指定使用哪个数据库 二、建表 create table 表名(字段名 字段类型,…) eg:create table t_user(id int,name string,age i...

amin_hui的博客 323

hive中的逻辑运算符 案列_Hive 的基本运算符 及 查询

测试数据和表数据1 Bob 12002 Black 21003 BigDataBoy 5600表create table hive_db(id int,name string,money int)row format delimitedfields terminated by '\t';基本查询格式select ... from ...语法...

weixin_35075740的博客 552

Hive执行计划详解

Hive的底层就是MapReduce的编程实现,我们可以通过执行计划详细的了解执行过程。对于我们对底层的理解,有很大的帮助。语法及结构官方对Hive Explain的英文解释,如果大家英文不错的话,强推: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Explain首先,Explain的语法:EXPLAIN [EXT

weixin_39216383的博客 2万+

hive支持所有mysql语法_hive sql语法解读

引言:原本打算把所有hive相关的sql语法,全部写下来,但是写着写着,发现自己仅仅是在翻译hive的wiki,没有什么有价值的东西,就停止了。今天心情郁闷,又看到这篇一个月前写的学习笔记,防止它永远封存于硬盘。发上来,以资纪念。hive sql 学习笔记(1)一、创建表在官方的wiki里,example是这样的:CREATE [EXTERNAL] TABLE [IF NOT EXISTS] t...

weixin_39926402的博客 883

hive插入多条数据sql_hive sql语法

show tables like '*name*';2.查看表结构信息desc formatted table_name;desc table_name;3.查看分区信息show partitions table_name;4.根据分区查询数据select table_coulm from table_name where partition_name = '2014-02-25';5.查看hdf...

weixin_39808726的博客 5167

大数据技术之_08_Hive学习_03_查询+函数

大数据技术之_08_Hive学习_03_查询+函数

黑泽君 881

Hive 总结(一):基本操作

文章目录建库建表1. 基本建表语句2. 删除表3. 内部表与外部表4. 分区表修改表定义1. 修改表名2. 修改分区定义3. 修改列名定义4. 增加/替换列查询语法1. 基本查询2. 条件查询3. join关联查询4. 分组聚合 建库建表 建库 --查看现有的所有库 show databases; --创建一个数据库,存放日常练习、测试数据- --默认的存放位置为:hdfs://master:...

小狐狸的博客 403

HIVE 基本语法

DDL Operations 创建表 hive> CREATE TABLE pokes (foo INT, bar STRING); 创建表并创建索引字段ds hive> CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING); 显示所有表 hive> SHOW TABLES; 按正条件

IQuicksandI的专栏 2454
上一篇: 07 | Hive DML操作
下一篇: 09 | Hive Join语句
走过冬季
博客等级 码龄9年 1609粉丝 341原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

走过冬季

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值