mysql基础题

mysql基础试题

– 查询学生表中有几名学生的信息.显示学号
select distinct 学号 from 学生表;
distinct的作用是排除重复这里是按学号排除重复。
例如一个student表
在这里插入图片描述
select distinct name,sid,age from student;
注意此时distinct name 后有逗号 这时会返回name,sid,age,如果没有则代表sid是别名不要搞错了

– 查询学生表中性别为女的学生所有信息
select * from 学生表 where 性别 = ‘女’;

– 查询成绩表中学生所有成绩,按照课程号升序,成绩降序排列
select * from 成绩表 order by 课程号 asc,成绩 desc;
这样写会优先按课程号排序同一个课程时按成绩排序

– 查询成绩表中学生所有成绩,按照课程号升序,成绩降序排列,显示前5条数据
select * from 成绩表 order by 课程号 asc,成绩 desc limit 0,5;
limit是mysql独有的关键字 其他数据库不适用 0代表从第一条开始 5代表查询5条

– 对各课程的成绩按照[100-85(含)]、[85-70(含)]、[70-60(含)]、[60以下]分段,并统计各分段数人数和课程名
– 定义条件:成绩在100-85(含)为[100-85(含)]段,在85-70(含)为[85-70(含)]段,在70-60(含)为[70-60(含)]段,小于60就是[60以下]分段;
– 把成绩表score和课程表course交叉联结(右联结),显示课程号、课程名、和分数段;
– 按课程号、课程名进行分组,对分组结果的人数按照上上述的逻辑条件计数;

select sr.课程号,cs.课程名称,
sum(case when 成绩 between 85 and 100 then 1 else 0 end) as ‘100-85分(含)’,
sum(case when 成绩 between 70 and 85 then 1 else 0 end) as ‘70-85分(含)’,
sum(case when 成绩 between 60 and 75 then 1 else 0 end) as ‘60-75分(含)’,
sum(case when 成绩 < 60 then 1 else 0 end) as ‘60分以下’
from score as sr right join course as cs on sr.课程号=cs.课程号
group by sr.课程号,cs.课程名称;

– 对每门课程进行分组,计算每门课程有几名学生
select 课程号,count(学号) from 表名 group by 课程号;

– 计算平均成绩大于等于80分的课程并根据成绩降序排,并获取第一行
select courseId ,avg(成绩) from courseselect group by courseId having avg(成绩) >80 order by avg(成绩) desc limit 1;

– 查询出每门课程的及格人数和不及格人数
select 课程号,sum(case when 成绩>90 then 1 else 0 end) as 及格人数,
sum(case when 成绩<90 then 1 else 0 end) as 不及格人数 from 成绩表 grhaooup by 课程号;

– 每一科成绩都大于该科平均成绩学生的学号和成绩
select 课程号,学号,成绩 from 成绩表 as sc1 where 成绩> (select avg(成绩) from 成绩表 as sc2 where sc1.课程号= sc2.课程号 group by 课程号);

– 查询大于平均成绩学生的学号和成绩
SELECT 学号,成绩 FROM 成绩表 WHERE 成绩 > (SELECT AVG(成绩) FROM 成绩表);

– 查找所有选修了0001号课程的课程的学生,并显示他们的姓名
select 姓名 from 学生表 where exists(select * from score where 学号=学生表.学号 and 课程号=‘0001’);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是阿信ya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值