其实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学习相关推荐

  1. 大数据之Hive入门

    1 Hive基本概念 1.1 什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计.Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供 ...

  2. 大数据架构师从入门到精通 学习必看宝典

    经常有初学者在博客和QQ问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高.如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你 ...

  3. 大数据架构师入门学习

    经常有初学者在博客和QQ问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高.如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你 ...

  4. 什么是大数据?如何入门学习大数据?

    什么是大数据?在互联网技术快速发展的今天,大量日常生活和经营活动中产生的数据都已经信息化.我们产生的数据量相比以前有了爆炸式的增长,传统的数据处理技术已经无法胜任,需求催生技术,一套用来处理海量数据的 ...

  5. 新手学习大数据技术如何入门?

    新手学习大数据技术如何入门? [导语]对于已经就业的从业者来说,学习路线和方式与在读学生还是有较大区别的,在读的学生可以按照编程语言.操作系统.机器学习.大数据平台等内容陆续学习,那么新手学习大数据技 ...

  6. 大数据新手的0基础学习路线,从菜鸟到高手的成长之路

    大数据作为一个新兴的热门行业,吸引了很多人,但是对于大数据新手来说,按照什么路线去学习,才能够学习好大数据,实现从大数据菜鸟到高手的转变.这是很多想要学习大数据的朋友们想要了解的. 今天我们就来和大家 ...

  7. 大数据工程师技能要求的学习路线图

    一.大数据相关工作介绍 大数据方向的工作目前主要分为三个主要方向: 1. 大数据工程师 2. 数据分析师 3. 大数据科学家 4. 其他(数据挖掘等) 二.大数据工程师的技能要求 附上大数据工程师技能 ...

  8. 什么是java的元数据_学习大数据,为什么要先学习Java?

    是新朋友吗?记得先点蓝字关注我哦- 今日课程菜单 Java全栈开发 | Web前端+H5 大数据开发 | 数据分析  人工智能+Python | 人工智能+物联网 来源:小职(z_zhizuobiao ...

  9. 什么是大数据?零基础如何学习大数据?(附学习路线)

    其实简单的来说,大数据就是通过分析和挖掘全量的非抽样的数据辅助决策. 大数据可以实现的应用可以概括为两个方向,一个是精准化定制,第二个是预测.比如像通过搜索引擎搜索同样的内容,每个人的结果却是大不相同 ...

  10. 2016年大数据Spark“蘑菇云”行动代码学习之AdClickedStreamingStats模块分析

    2016年大数据Spark"蘑菇云"行动代码学习之AdClickedStreamingStats模块分析     系统背景:用户使用终端设备(IPAD.手机.浏览器)等登录系统,系 ...

最新文章

  1. 涉嫌盗取前东家谷歌的代码,一位工程师被判赔1.8亿美金,将全由个人偿还
  2. awk分析nginx日志里面的接口响应时间
  3. 5行代码AC——L1-029 是不是太胖了 (5分)
  4. CF960G-Bandit Blues【第一类斯特林数,分治,NTT】
  5. 40种网站设计常用技巧
  6. Ural 1001 Reverse Root 解题报告
  7. TODO C++ 异常处理
  8. 李炎恢老师的php源码以及附带一个php手册
  9. ie8升级到ie11
  10. 77页智慧应急解决方案 2022
  11. python模拟登录淘宝参数在哪获取_如何用 Python 模拟登录淘宝?
  12. 常犇_武汉大学管理学院2019年工商管理硕士(MBA)第三批复试通知
  13. 在+android+4.4+系统使用+flash功能,科技来电:flash王者归来 全面支持安卓4.2+
  14. WCDMA常见缩略语
  15. c++11伪随机数生成库:random
  16. adc芯片资料——电子迷你秤芯片CS1180
  17. 卡尔曼(Kalman)滤波(四)--深入浅出Kalman滤波算法
  18. 试题2-12:数据库设计与操作
  19. linux内存测试工具memtest,内存检测工具Memtest使用方法(图文教程)
  20. 腾讯云5000亿元、阿里云2000亿元,都是投的啥?

热门文章

  1. php怎么调用php语言包,thinkphp里怎么调用语言包
  2. 转贴:Objective-C Tutorial
  3. Libfetion在Ubuntu下的中文输出了局
  4. 如何下载自己喜欢的网站
  5. 计算机及其工作原理ppt,计算机及其工作原理ppt课件
  6. 计算机控制液压同步顶升系统,变频控制同步顶升液压系统
  7. 小生我怕怕私房版OllyDBG全自动下断版
  8. 2022-08-19 mysql/stonedb-索引优化专利交底书-改进点
  9. ubuntu 14.04 安装 minidwep-gtk, aircrack-ng, reaver 搭建抓包环境
  10. Word样式窗格、模板格式