大数据开发之hive的了解及SQL基础命令分享

hive(数据仓库工具)
Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。并提大数据培训供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。术语“大数据”是大型数据集,其中包括体积庞大,高速,以及各种由与日俱增的数据的集合。使用传统的数据管理系统,它是难以加工大型数据。因此,Apache软件基金会推出了一款名为Hadoop的解决大数据管理和处理难题的框架。

SQL
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

常见SQL命令
大数据开发之hive的了解及SQL基础命令分享_第1张图片
SELECT 语句

作用:用于从表中选取数据,结果被存储在一个结果表中

语法:select 列名称 from 表名称

举例:select LastName from Person 或 select * from Person

WHERE 子句

作用:如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句

语法:SELECT 列名称 FROM 表名称WHERE 列 运算符 值

举例:SELECT * FROM Persons WHERE FirstName='John'

ORDER BY 语句

作用:ORDER BY 语句用于根据指定的列对结果集进行排序,默认按照升序对记录进行排序;如需按照降序,可使用DESC关键字

举例:ORDER BY SELECT LastName, FirstName FROM Persons ORDER BY FirstName

SELECT DISTINCT

作用:关键字DISTINCT 用于返回唯一不同的值

语法:SELECT DISTINCT 列名称 FROM 表名称

举例:要从Company列中仅选取唯一不同的值,
大数据开发之hive的了解及SQL基础命令分享_第2张图片
SELECTDISTINCT Company FROM Orders

AND 和 OR 运算符

作用: AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录

举例:使用 AND 来显示所有姓为 "Carter" 并且名为 "Thomas" 的人

SELECT* FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

SUM() 函数

作用:SUM 函数返回数值列的总数(总额)

语法:SELECT SUM(column_name) FROM table_name

举例:
大数据开发之hive的了解及SQL基础命令分享_第3张图片
 我们希望查找 "OrderPrice" 字段的总数

SELECTSUM(OrderPrice) AS OrderTotal FROM Orders

GROUP BY 语句

“GroupBy”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理

举例:
大数据开发之hive的了解及SQL基础命令分享_第4张图片
 select类别, sum(数量) as 数量之和fromA

groupby 类别

返回结果如下表,实际上就是分类汇总。
大数据开发之hive的了解及SQL基础命令分享_第5张图片
实例介绍:

  1. 从persona_data_info 表中,查询job_id=279 的每个gender类别的人数总和

select gender,sum(persona_count) from persona_data_info where job_id=279 group by gender;

  1. 从persona_data_city ,persona_city_map两个表中查询job_id=279且citycode= map.code

SELECTjob_id,citycode,persona_count,province,region,city_level FROM persona_data_city,persona_city_map where job_id=279 AND persona_data_city.citycode =persona_city_map.code;

你可能感兴趣的:(大数据hivesql)