栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

04:Hive从0到1系列学习:查询之基本查询

04:Hive从0到1系列学习:查询之基本查询

内容目录
    • 查询(重点)
      • 基本查询
        • 1、全表查询和特定列查询
        • 2、列别名
        • 3、算术运算符
        • 4、常用函数
        • 5、limit语句
        • 6、where语句
        • 7、比较运算符(Between/In/ Is Null)
        • 8、Like和RLike
        • 9、逻辑运算符(And/Or/Not)

查询(重点)

查询的基本语法

SELECt [ALL | DISTINCT] select_expr, select_expr, ...
FROM table_reference
[WHERe where_condition]
[GROUP BY col_list]
[ORDER BY col_list]
[CLUSTER BY col_list| [DISTRIBUTE BY col_list] [SORT BY col_list]]
[LIMIT number]
基本查询 1、全表查询和特定列查询

①全表查询,就是使用符号 * 就代表全部列的数据

select * from student;

②特定列查询

select id, name from student;

说明:

HQL对大小写不敏感

HQL语言以分号;作为语句的结尾

HQL允许参数之间有空格或者回车,所以可以使用缩进和回车让语句更有可读性

2、列别名

在查询的时候还可以对查询的结果指定一个新的列名,用as关键字即可

select id as student_id, name as student_name from student;

也可以不使用as关键字,直接将别名跟在字段后即可

3、算术运算符
运算符描述
A+BA和B 相加
A-BA减去B
A*BA和B 相乘
A/BA除以B
A%BA对B取余
A&BA和B按位取与
A|BA和B按位取或
A^BA和B按位取异或
~AA按位取反

比如查询出所有员工的薪水加奖金

select ename as name, sal+comm  income from emp;
4、常用函数

①求总行数count

select count(*) count 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;

5、limit语句

用于限制返回的行数

select * from emp limit 5;

6、where语句

使用where语句将满足条件的数据 查询出来

select * from emp where sal > 2000;

7、比较运算符(Between/In/ Is Null)

①between是范围选择

比如查询出薪水在1500~5000之内的员工

select * from emp where sal between 1500 and 5000;

②in是数值匹配

匹配出符合in中的数值

比如查询出薪水为1500或者5000的员工信息

select * from emp where sal in (1500,5000);

③is null空值判断

返回空值的数据

比如查询出所有没有奖金的员工信息

select * from emp where comm is null;

8、Like和RLike

类似于正则匹配

①LIKE

选择条件包括两个

% --> 代表零个或多个字符(任意个字符)。

_ --> 代表一个字符。

比如查找名字以A开头的员工

select * from emp where ename like 'A%';

②RLIKE

类似于正则表达,可以直接使用Java的正则表达式来查询数据

比如查找名字中带有A的员工信息

select * from emp where ename rlike '[A]';

9、逻辑运算符(And/Or/Not)
操作符含义
AND逻辑并
OR逻辑或
NOT逻辑否

①查询薪水大于1000,部门是30

select * from emp where sal>1000 and deptno=30;

②查询薪水大于3000,或者部门是30的

select * from emp where sal>3000 or deptno=30;

③查询薪水大于1000,并且部门不属于30和10的所有员工

select * from emp where sal>1000 and deptno not in (10,30);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/676961.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号