240619-Hive笔记-5
6.2.2 全表和特定列查询
1) 全表查询
sql
hive (default)> select * from emp;
select 查看你要查看的信息
from 你要从哪张表里面查
2) 选择特定列查询
sql
hive (default)> select empno, ename from emp;
注意:
(1)SQL 语言大小写不敏感。
(2)SQL 可以写在一行或者多行。
(3)关键字不能被缩写也不能分行。
(4)各子句一般要分行写。
(5)使用缩进提高语句的可读性。
查看 empno 和 ename 列
6.2.3 列别名
重命名一个列
便于计算
紧跟列名,也可以在列名和别名之间加入关键字'AS'
案例实操
查询名称和部门。
sql
hive (default)>
select
ename AS name,
deptno dn
from emp;
as 可以省略
6.2.4 Limit 语句
典型的查询会返回多行数据。limit子句用于限制返回的行数。
sql
hive (default)> select * from emp limit 5;
hive (default)> select * from emp limit 2,3; -- 表示从第2行开始,向下抓取3行
返回前五个数据:
6.2.5 Where 语句
使用 where 子句, 将不满足条件的行过滤掉
where 子句紧随from子句
案例实操
- 1000的所有员工。
sql
hive (default)> select * from emp where sal > 1000;
注意:where子句中不能使用字段别名。
6.2.6 关系运算函数
1) 基本语法
如下操作符主要用于where和having语句中。
|---------------------------|
| *操作符* |
| A=B |
| A<=>B |
| A<>B, A!=B |
| A<B |
| A<=B |
| A>B |
| A>=B |
| A [not] between B and C |
| A is null |
| A is not null |
| in(数值1,数值2) |
| A [not] like B |
| A rlike B, A regexp B |
查询工资在500~1000的员工:
查找研发岗和销售岗的员工:
sql
select empno as emp_id ename emp_name from emp where job in('研发','销售')
job 是列名,不是语法
查找所有姓张.的:
sql
select * from emp where ename like "张%"
%表示匹配一个字符
like 模糊匹配
匹配不是姓张的:
6.2.7 逻辑运算函数
找日志(本地模式):
/tmp/用户名/hive.log
命令:
tail -500 /tmp/用户名/hive.log
1) 基本语法 (and/or/not)
|-------------|
| 操作符 |
| and |
| or |
| not |
2) 案例实操
(1) 查询薪水大于1000,部门是30
sql
hive (default)>
select
*
from emp
where sal > 1000 and deptno = 30;
(2) 查询薪水大于1000,或者部门是30
sql
hive (default)>
select
*
from emp
where sal>1000 or deptno=30;
(3) 查询除了20部门和30部门以外的员工信息
sql
hive (default)>
select
*
from emp
where deptno not in(30, 20);