Mysql日常

--简单Case函数 
CASE sex 
         WHEN ‘1‘ THEN ‘男‘ 
         WHEN ‘2‘ THEN ‘女‘ 
ELSE ‘其他‘ END 
--Case搜索函数 
CASE WHEN sex = ‘1‘ THEN ‘男‘ 
         WHEN sex = ‘2‘ THEN ‘女‘ 
ELSE ‘其他‘ END 

这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。 
还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。 

 

select distinct 专业名 from 表名;

对表消除,专业名的重复行

 

select * from 表名 where 总学分 > 50 order by 总学分;

总学分>50且按升序排列 

 

统计查询

常用的聚合函数

1 count : 行数

2 sum : 总和 (求总和)

3 avg : 平均值 

4 max 最大值

5 min : 最小值

 

GROUP BY 对指定的规则对数据进行分组

有group by不一定有having,但有having必须有group by

有group by不一定有having,但有having必须有group by

having必须跟在group by之后,实现对分组结果的筛选

where与having都有筛选的作用,但作用对象不同

当group by与聚合函数配合使用时,功能为分组后计算

当group by与having配合使用时,功能为分组后过滤、

 

count(*) 查询这字段里的从数量

select count(*) as 总数量 from 表名;

 

select count(*) as 5分以上 from kc where 学分>5

 

select max,min,avg from xs;

max最高分,min最低分,avg总学分

 

select sum(成绩) from 表名 where 学号=’12‘;

统计12学生的总成绩;sum总和

 

select 性别,count(*) from 表名 group by 性别;

统计性别男女分别的总人数

 

select 性别,count(*) as 人数 from 表名 where 出生日期>’1888-8-8‘ group by 性别;

统计1888年后出生的男女生各有多少人

 

select 学号,avg(成绩) from 表名 group by 学号;

统计每个学生的平均成绩

 

select 课程号,avg(成绩),count(*) from 表名 group by 课程号;

统计被选修的各门课程的平均成绩和该课程的总人数

 

select 课程号,avg(成绩),count(*) from 表名 group by 课程号 having avg(成绩) >=80

统计被选修的各门课程中平均成绩在80分以上的课程选修该课程人数

 

select group_concat(学号) as 选1课程的学号 from 表名 where 课程号=1;

查询选修了1课程的学生的学号,显示在一行,中间用逗号隔开

 

Mysql日常

 

 

上一篇:ORACLE如何查看当前账号的相关信息总结


下一篇:Mac安装mysql5.7版本 以及注意事项