1.查询语句:
2.基本查询(select...from):(1)全表查询:
hive(default) > select * from emp;
hive(default) > select empno,ename,job,mgr,hiredate,sal,
comm,deptno from emp;
(2)选择特定列查询:
hive(default) > select empno,enmae from emp;
注:①SQL语言大小写不敏感
②SQL可以写在一行或者多行
③关键字不能被缩写也不能分行
④各子句一般要分行写
3.常用函数:(1)求总行数(count):
hive(default) > select count(*) cnt from emp;
(2)求工资的最大值(max):
hive(default) > select max(sal) max_sal from emp;
(3)求工资的最小值(min):
hive(default) > select min(sal) min_sal from emp;
(4)求工资的总和(sum):
hive(default) > select sum(sal) sum_sal from emp;
(5)求工资的平均值(avg):
hive(default) > select avg(sal) avg_sal from emp;
4.Limit语句:典型的查询会返回多行数据。Limit子句用于限制返回的行数
eg. hive(default) > select from emp limit 5;
5.Where语句:(1)使用where子句,将不满足的行过滤掉
(2)where子句紧随from子句
eg.查询出薪水大于1000的所有员工
hive(default) > select * from emp where sal>1000;
注:where子句中不能使用字段别名
6.比较运算符(between/in/is null):下面表中描述了谓词操作符,这些操作符同样可以用于join...on和having语句中
操作符 | 支持的数据类型 | 描述 |
A=B | 基本数据类型 | 如果A等于B则返回true,反之返回false |
A<=>B | 基本数据类型 | 如果A和B都为NULL则返回true,如果一边为NULL,返回false |
A<>B,A!=B | 基本数据类型 | A或B为NILL则返回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 |
7.Like和RLike:(1)使用like运算选择类似的值
(2)选择条件可以包含字符或者数字:①“%”代表零个或多个字符
②“_”代表一个字符
(3)rlike子句:rlike子句是hive中这个功能的一个扩展,可以通过Java的正则表达式来指定匹配条件
eg.①查找名字以A开头的员工信息:
hive(default) > select * from emp where ename LIKE ‘A%’;
②查找名字中第二个字母为A的员工信息:
hive(default) > select * from emp where ename LIKE ‘_A%’;
③查找名字中带有A的员工信息:
hive(default) > select * from emp where ename RLIKE ‘[A]’;或:hive(default) > select * from emp where ename LIKE ‘%A%’;
8.分组:(1)group by语句:通常会和聚合函数一起使用,按照一个或者多个列队结果进行分组,然后对每个组执行聚合操作
eg.①计算emp表每个部门的平均工资
hive(default) > select t.deptno,avg(t.sal) avg_sal from emp t group by t.deptno;
②计算emp每个部门中每个岗位的最高薪水
hive(default) > select t.deptno,t.job,max(t.sal) max_sal from emp t group by
t.deptno,t.job;