简单查询
select
- select
SELECT [distinct] * | {colum1,colum2,,,} from table_name;
colum指定列名,* 代表查询所有 ,distinct 可选,是否踢掉重读数据
例
student表
select * from student;//所有
select id,name from student; //查询id和name列
select distinct name from studnet;//过滤重名的人
- 可在查询时加分
select english+10 from student;
显示加分数据不会修改。
- 查询总分
select name ,English+Chinese from student;
- 使用别名
select name as '姓名' ,English+Chinese as '总成绩' from student
as可以省略
where 条件限制
- 查询姓名是XXX的成绩
select * from student where name ='XXX';
- 英语成绩大于90
select * from student where english>90;
- 总分大于150的
select * from student where english+Chinese>150;
where 语句运算符
聚合函数
count
用来统计函数
select count(*)|count(列名) from table_name [where balabala];
- 例 统计一个班多少学生
select count(*) from studnet;
- 统计成绩大于90
1. select * from student where english>70;
2. select count(*) from student where english>70;
sum
将符合条件的某列的和值
select sum(列名){,sum(列名)} from table_name [where balabala];
- 列统计班级英语总分
select sum(english) from student;
- 潮汛语文平均分
select sum(chinese)/count(*) from student;
avg
求符合条件的平均值
select avg(列名){,avg(列名)} from table_name [where balabala];
- 例求班级英语平均分
select avg(english) from student;
- 总体平均分
select avg(chinese+english) from student;
max和min
求符合条件的列的最大值最小值
select max|min(列名) from tabname [where balabala];
- 班级总分最高分
select max(chinese+english) from studnet;
排序查询
order by
select * | column1,column2,column3,,,,from table_name order by column [asc升序|desc降序]
- 例 对数学成绩排序
select name,math as '数学'from student order by math|‘数学’ asc;
分组查询
group by
select * | column1,column2,column3,,,,from table_name group by couumn [hive ....];
- 例 商品分组价钱求和
select name , sum(much) from prodect group by name;
hive进行过滤
where可以过滤,在分组前过滤,where中不允许使用聚合函数
- 例 查询总价大于100 的商品
select name , sum(much) from prodect group by name hive sum(much) >100;
- 例 查询单价小100单总价大于100的商品
select name,sun(much) from prodect where much <100 group by name hive sun(much)>100;
limit限制查询数量
select * from tb_name limit [offset] 记录数量;
offset:开始位置默认从头。
mysql中的函数
数学函数
字符串函数
日期时间函数
条件判断函数
加密函数
为表和字段取别名
表名或者字段名太长 可取小名代替。简化代码。
为表取别名
select * from tb_Name [as] 别名;
为字段取别名
select 字段1 [as] 别名,字段2 [as] 别名 from tb_name;