查询
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Select
全表和特定列查询:
全表查询
select * from emp;
选择特定列查询
select empno, ename from emp;
注意:
(1)SQL 语言大小写不敏感。
(2)SQL 可以写在一行或者多行。
(3)关键字不能被缩写也不能分行。
(4)各子句一般要分行写。
(5)使用缩进提高语句的可读性。
列别名
重命名一个列。
便于计算。
紧跟列名,也可以在列名和别名之间加入关键字‘AS’
案例实操
1)查询名称和部门
hive (default)> select ename AS
name, deptno dn from emp;
算术运算符
运算符 | 描述 |
---|---|
A+B | A和B 相加 |
A-B | A减去B |
A*B | A和B相乘 |
A/B | A除以B |
A%B | A对B取余/模 |
A&B | A和B按位取与 |
A|B |
A和B按位取或 |
A^B | A和B按位取异或 |
~A | A按位取反 |
案例实操
查询出所有员工的薪水后加1显示。
hive (default)> select sal +1 from emp;
常用函数
求总行数(count)
select count(1) cnt from emp;
求工资的最大值(max)
select max(sal) max_sal from emp;
求工资的最小值(min)
select min(sal) min_sal from emp;
求工资的总和(sum)
select sum(sal) sum_sal from emp;
求工资的平均值(avg)
select avg(sal) avg_sal from emp;
Limit语句
典型的查询会返回多行数据。LIMIT子句用于限制返回的行数。
hive (default)> select * from emp limit 5;
Where语句
使用WHERE子句,将不满足条件的行过滤掉。
WHERE子句紧随FROM子句。
案例实操
查询出薪水大于1000的所有员工
hive (default)> select ename , sal from emp where sal > 1000;
比较运算符(Between/In/ Is Null)
下面表中描述了谓词操作符,这些操作符同样可以用于JOIN…ON和HAVING语句中。
操作符 | 支持的数据类型 | 描述 |
---|---|---|
A=B | 基本数据类型 | 如果A等于B则返回TRUE,反之返回FALSE |
A<=>B | 基本数据类型 | 如果A和B都为NULL,则返回TRUE,其他的和等号(=) |