大数据学习---HIVE入门SQL学习
其实HIVE的SQL和MySQL的语法基本类似。
一、数据库
创建数据库
create database 数据库名;
查看数据库
show databases;
切换数据库
use database 数据库名
二、表
创建表
方式一:
create table 表名(
字段名 字段类型,
字段名 字段类型
) row format delimited
fields terminated by "" 使用分隔符
方式二:
create table 表名 as (查询语句查询的结果)
三、加载数据
传统的数据库添加数据使用的是insert,但是这里官方推荐使用load进行数据加载。
数据加载有两种方式:复制形式的加载,移动形式的加载。
命令:
load data local inpath 要加载的文件地址 into table 对应文件的表名
这里加载的是服务器本地的文件系统中的文件,此时是一种纯复制操作。
load data inpath 要加载的文件地址 into table 对应文件的表名
这里加载的是HDFS系统中的文件,此时是一种纯移动操作。
insert插入数据,要启动MR进行计算,所以插入时间会比较长。不过在这里可以使用insert+select进行数据查询插入。
insert into table 表名 查询语句获取相同字段的记录进行批量插入
四、查询数据
1、基本查询语法
HIVE的基本查询语句是与常规的SQL语句一致的。
select current_database(); 查询当前看数据库
2、去重
去重使用distinct,放在字段名之前可以根据当前字段进行去重。也可以放在返回结果的多个字段前,就会对多个字段同时去重。
3、where
where查询,其后面是跟一个布尔值
4、聚合函数
AVG(cloumn) 计算平均值
count(cloumn) 统计数量,不包括null
count(*) 统计数量,包括null
max(cloumn) 统计该字段内最大值
min(cloumn) 统计该字段内最小值
sun(cloumn) 对该字段数据求和
5、分组
group by 字段 :按字段进行分组,字段可以是多个,就是按照多个字段进行分组
限制:返回的结果中的字段必须是分组的字段或在聚合函数之中,否则报错。
6、having
having 后面也是布尔类型过滤,他要放在分组之后。
having和where的区别:
having | where |
分组后执行 | 分组前执行 |
可以使用聚合函数 | 不可以使用聚合函数 |
7、排序
orderBy 字段 排序:根据某个字段进行排序 ,也可以根据多个字段进行排序
排序分两种:升序排序(asc) 、降序排序(desc)
默认排序是升序排序。
8、限制
limit 数量 n:显示前n条数据
limit n,m :从n开始,显示m条数据
索引从0开始
执行顺序:
from > where > group by > having > order by > limit > select
示例:
select * from 表
where 条件
group by 字段
having 条件
order by 字段 顺序
limit n|[n,m]
9、关联查询
内连接
select * from A inner join B where A.id = B.aid
select * from A join B where A.id = B.aid
select * from A,B where A.id = B.aid
左连接
select * from A inner left join B where A.id = B.aid
在关联查询中,内连接是只将关联到的记录进行展示。外连接则是对所有的记录进行展示,在关联不到的记录中所对应的数据为空。
左连接查询,是以左表为主表,再对右表进行关联,能关联到的显示关联数据,关联不到的只展示左边数据,右表字段为null。右连接相反。
10、内置函数
操作字符串的:
length(str) 查看某个数据的长度
reverse(str) 将字符串进行反转
concat(str1, str2, strArr) 对字符串进行拼接
concat_ws(分隔符,str1, str2, strArr) 对字符串进行分隔符拼接
substr(int start,int length) |substring(int start,int length) 对字符串进行截取 索引是从1开始的
split(str,分隔符) 对字符串进行分割 返回值是一个数组
操作日期的:
current_date();获取当前时间
unix_timestamp():获取当前时间的时间戳
unix_timestamp(date,时间格式):获取自定义的时间的时间戳
from_unixtime(时间戳,自定义的时间格式):将时间戳转换为固定格式的时间
date_diff(时间1,时间2):获取两个时间的天数差
date_add(时间1,int n) :添加几天
date_sub(时间1,int n) :减少几天
数学函数
round(double b) 四舍五入
round(double b,int a):保留a位小数
rand() :获取随机数(0-1)
rand(int n):获取固定数,在随机数获取后就会固定
条件函数
if(boolean b,成功默认值,失败默认值) :判断后可以得到默认值,只能有两个
case str when str1 默认1 when str2 默认2 else 默认3 end :可以判断多个条件
大数据学习---HIVE入门SQL学习相关推荐
- 大数据之Hive入门
1 Hive基本概念 1.1 什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计.Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供 ...
- 大数据架构师从入门到精通 学习必看宝典
经常有初学者在博客和QQ问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高.如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你 ...
- 大数据架构师入门学习
经常有初学者在博客和QQ问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高.如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你 ...
- 什么是大数据?如何入门学习大数据?
什么是大数据?在互联网技术快速发展的今天,大量日常生活和经营活动中产生的数据都已经信息化.我们产生的数据量相比以前有了爆炸式的增长,传统的数据处理技术已经无法胜任,需求催生技术,一套用来处理海量数据的 ...
- 新手学习大数据技术如何入门?
新手学习大数据技术如何入门? [导语]对于已经就业的从业者来说,学习路线和方式与在读学生还是有较大区别的,在读的学生可以按照编程语言.操作系统.机器学习.大数据平台等内容陆续学习,那么新手学习大数据技 ...
- 大数据新手的0基础学习路线,从菜鸟到高手的成长之路
大数据作为一个新兴的热门行业,吸引了很多人,但是对于大数据新手来说,按照什么路线去学习,才能够学习好大数据,实现从大数据菜鸟到高手的转变.这是很多想要学习大数据的朋友们想要了解的. 今天我们就来和大家 ...
- 大数据工程师技能要求的学习路线图
一.大数据相关工作介绍 大数据方向的工作目前主要分为三个主要方向: 1. 大数据工程师 2. 数据分析师 3. 大数据科学家 4. 其他(数据挖掘等) 二.大数据工程师的技能要求 附上大数据工程师技能 ...
- 什么是java的元数据_学习大数据,为什么要先学习Java?
是新朋友吗?记得先点蓝字关注我哦- 今日课程菜单 Java全栈开发 | Web前端+H5 大数据开发 | 数据分析 人工智能+Python | 人工智能+物联网 来源:小职(z_zhizuobiao ...
- 什么是大数据?零基础如何学习大数据?(附学习路线)
其实简单的来说,大数据就是通过分析和挖掘全量的非抽样的数据辅助决策. 大数据可以实现的应用可以概括为两个方向,一个是精准化定制,第二个是预测.比如像通过搜索引擎搜索同样的内容,每个人的结果却是大不相同 ...
- 2016年大数据Spark“蘑菇云”行动代码学习之AdClickedStreamingStats模块分析
2016年大数据Spark"蘑菇云"行动代码学习之AdClickedStreamingStats模块分析 系统背景:用户使用终端设备(IPAD.手机.浏览器)等登录系统,系 ...
最新文章
- 涉嫌盗取前东家谷歌的代码,一位工程师被判赔1.8亿美金,将全由个人偿还
- awk分析nginx日志里面的接口响应时间
- 5行代码AC——L1-029 是不是太胖了 (5分)
- CF960G-Bandit Blues【第一类斯特林数,分治,NTT】
- 40种网站设计常用技巧
- Ural 1001 Reverse Root 解题报告
- TODO C++ 异常处理
- 李炎恢老师的php源码以及附带一个php手册
- ie8升级到ie11
- 77页智慧应急解决方案 2022
- python模拟登录淘宝参数在哪获取_如何用 Python 模拟登录淘宝?
- 常犇_武汉大学管理学院2019年工商管理硕士(MBA)第三批复试通知
- 在+android+4.4+系统使用+flash功能,科技来电:flash王者归来 全面支持安卓4.2+
- WCDMA常见缩略语
- c++11伪随机数生成库:random
- adc芯片资料——电子迷你秤芯片CS1180
- 卡尔曼(Kalman)滤波(四)--深入浅出Kalman滤波算法
- 试题2-12:数据库设计与操作
- linux内存测试工具memtest,内存检测工具Memtest使用方法(图文教程)
- 腾讯云5000亿元、阿里云2000亿元,都是投的啥?
热门文章
- php怎么调用php语言包,thinkphp里怎么调用语言包
- 转贴:Objective-C Tutorial
- Libfetion在Ubuntu下的中文输出了局
- 如何下载自己喜欢的网站
- 计算机及其工作原理ppt,计算机及其工作原理ppt课件
- 计算机控制液压同步顶升系统,变频控制同步顶升液压系统
- 小生我怕怕私房版OllyDBG全自动下断版
- 2022-08-19 mysql/stonedb-索引优化专利交底书-改进点
- ubuntu 14.04 安装 minidwep-gtk, aircrack-ng, reaver 搭建抓包环境
- Word样式窗格、模板格式