order by:会对输入做全局排序,因此只有一个reducer,会导致输入规模较大时,需要较长的计算时间
sort by:不是全局排序,其数据在进入reducer之前完成排序,只保证每个reducer的输出有序而不保证全局有序
distribute by:根据指定的字段将数据分到不同的reducer,相当于一个分区,其算法为hash散列
cluster by:除了具有distribute by的功能外,还会对该字段进行排序
1.全表查询
select * from 表名字
2.选择特定列
select 列字段 from 表名字
3.列别名
select 列字段 as 列别名 from 表名字
4.常用函数
求总行数:select count(1)from 表名字
求最大值:select max(列字段) from 表名字
求最小值:select min(列字段) from 表名字
求总和:select sum(列字段) from 表名字
求平均值:select avg(列字段) from 表名字
5.limit语句
limit语句回限制返回的查询结果的行数
select * from 表名字 limit 3 返回前三条结果
6.where语句
where语句会将不满足条件的语句过滤掉
select 列字段 from 表名字 where 条件
操作符:A<=>B 如果AB都为NULL则返回true 如果只有一个为NULL则返回NULL,若都不为NULL,判断是否相等
A<>B A!=B 判断是否A不等于B
in()in后面的数据是一个列表,数据和列表中的一个相同就可以
select * from score where s_score in(80,90) 查询成绩是80或90的数据
7.like和rlike
可以使用like运算选取类似的值,rlike功能更加强大,后面可以接一个正则表达式。这两个关键字通常用于模糊查询
%:可以代表任意个字符
_:可以代表一个字符
select * from score where s_score like ‘8%’ 查询成绩是8开头的数据,成绩为8,80,81,82...的数据都会被查询出来
select * from score where s_id rlike ‘[1]' 相当于 like’%1%‘ 查找s_id中包含1的数据
8.逻辑运算符
and:表示并
or:表示或
not:表示否