mysql练习_MySQL练习——3

汇总分析

原先建立的数据集情况:

student(学号,姓名,出生日期,性别)

score(学号,课程号,成绩)

course(课程号,课程名称,教师号)

teacher(教师号,教师姓名)

311d7d89e029473e736372abbd4638a9.png
  • 函数:输入、功能、输出

1.count,求某列的行数,

select 

(注意,Null不计入)

select count(*) from teacher;

2.sum,某列数据求和

select sum(成绩) from score;

3.avg,求某列数据的平均值

select avg(成绩) from score;

4.max,求某列数据的最大值

5.min,求某列数据的最小值

select max(成绩),min(成绩) from score;

6.加入distinct可删除重复值,再计算。

select count(distinct 姓名) from student;

练习:查询课程编号为“0002”的总成绩

select sum(成绩) from score where 课程号='0002';

练习:查询选了课程的学生人数

select count(distinct 学号) from score;

运行结果展示:

5b8e2daa1c453c37da6c8fb9b5fff1da.png

df30a359546103037953beeaa2ddcedc.png

e7f3e2b8b574e400a962fe1230c2808a.png

ff7d4563e14c6f2afb99f2fd5cd195cb.png

947de43eb6293740ee12ea6f9d815c41.png

fb382eb7541a695e8d297de567e94cc2.png

c88902590fbe8fd23d830eeb005fb291.png

d5f8ae17c4d8ca7c2a344daf376ff12d.png

ad321c30ab45f802484ff62f6bc33fd3.png
  • 分组

1.分析方法:数据分组→应用函数→组合结果

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

2.SQL运行顺序:from(来源)where(条件)group by(分组)select(应用函数、组合结果和筛选指定列)

select 性别,count(*) from student where 出生日期>'1990-01-01' group by 性别;

练习:查询各学科成绩最高和最低的分

select 课程号,max(成绩),min(成绩) from score group by 课程号;

练习:查询每门课程被选修的学生数

select 课程号,count(distinct 学号) from score group by 课程号;

练习:查询男生、女生数

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

运行结果展示:

12b8ffadb3d453eac990e73309f3e08b.png

68daec0f1cb4dd2536dde9f53466a6dc.png

772d145e7e2f4cb2b6fa0f1e400f00b7.png

bd4df9abc264027b0693af41b6a4a403.png

0521a99c2f232f756bb90670fff792d0.png

bbce2a679abc83f5a3e1f22496517b0f.png
  • 对分组结果指定条件

1.where字句只能筛选行的条件,而having字句可以指定分组后的条件

select 性别,count(*) from student group by 性别 having count(*)>1;

2.SQL运行顺序:from(来源)where(条件)group by(分组)having(对分组结果指定条件)select(应用函数、组合结果和筛选指定列)

练习:查询平均成绩大于60分的学生学号和平均成绩

select 学号,avg(成绩)as 平均成绩 from score group by 学号 having avg(成绩)>60;

练习:查询至少选修两门课程的学生学号

select 学号 from score group by 学号 having count(课程号)>=2;

练习:查询同名同姓学生名单并统计同名人数

select 姓名,count(*)as 同名人数 from student group by 姓名 having count(*)>1;

运行结果展示:

b0104c9d01b3442ad7d18d9e45b237db.png

4e7e33f4e9d0486789250b56c67dbc60.png

826b31c89fa0da985244943c63710ced.png

d657452a17a6400d6fc90ae83cad8364.png

021c9bda0b7d1e2dda5d93a3afd37254.png
  • 用SQL解决业务问题

1.翻译成大白话→写出分析思路→写出相应的sql字句

2.计算各科的平均成绩,分组课程,计算平均成绩

select 查询结果:课程号(分组)、平均成绩avg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值