MySQL_02_基础面试题

MySQL面试题

第一题

1.取出上表中30行到40行的记录

Select * from S_Table limit 30,10;

2.查询出成绩高于班级1平均分的所有学生的班级及人员数目

<1>.先求班级1的平均分
Select avg(score)  from s_table  where class=1;  
<2>查询出分数高于班级1平均分的所有学生的 班级 以级人员数目
Select class,count(*)  from s_table where score >
(Select avg(score)  from s_table  where class=1) group by class;

第二题

3个表
S(S#学号,SN姓名,SD所属单位,SA年龄)
C(C#课程编号,CN课程名称)
SC(S#学号,C#课程号,G学习成绩)

1.使用标准嵌套sQL语句查询选修课程名称为“税收基础“的学员学号和姓名

<1>.根据课程名字查询课程号
Select c# from c where cn=’税收基础’;
<2>.根据课程号在sc表中查询学号
Select s# from sc where c# in(Select c# from c where cn=’税收基础’);
<3>.根据学号到S表中查询信息
Select s#,sn from s where s# in (Select s# from sc where c# in(Select c# from c where cn=’税收基础’));

2.查询选修课程为“C2”的所有学员的学号、姓名、所属单位、成绩,并按照所属单位升序、成降序排列

Select s.s#,s.sn,s.sd,sc.g from S 
inner join sc on s.s#=sc.s#
Inner join c on sc.c#=c.c# 
where[经测试这边where -> and似乎也可以] c.cn=’c2’ order by s.sd asc,sc.g desc;

3.查询所有学员选修课程的数量,列出学号、姓名、所选课程数,并按照课程数降序

Select s.s#,s.sn,count(*) from s
inner join sc on sc.s# =s.s#
Group by sc.s#;

4.查询选修课程数超过5次学员的学号、姓名、所属里位、所选课程数,并按照学号升序

Select s.s#,s.sn,count(*),s.sd from s
inner join sc on sc.s# =s.s#
Group by sc.s#;
Having count(*)>5
Order by s.s# asc;

第三题

1.输出每个学生的各科成绩

Select s.class, s.studname,sc.score
From student as s
Inner join score as sc
On s.studid=sc.studid;

2.分别输出每个班级男生各科成绩和及女生各科成绩之和(结果在一张表中反映)

Select sc.class,s.sex,sum(sc.score)
From student as s
Inner join score as sc
On s.studid=sc.studid
Group by sc.class,s.sex;

第四题

score(成绩表):
sc_number( 学号),sc_name(姓名),sc_sex(性别),sc_courseId(课程编号),
sc_score(分数),sc_ismarkup 当前考试是否为补考(0:补考,1:非补考)

course课程表:co_id (课程号),co_name(课程名称)co_desc(课程介绍)

1.如果学号的前两位表示年级,要查找98级女生的姓名,请写出相应的sql语句

Select sc_name from score where sc_number like ‘98%’ and sc_sex=’女’;

2.要查找所有需要补考(小于60分)的学生姓名和这门课程的名称和成绩,请相应的SQL语句

Select sc.sc_name,sc.sc_score,c.co_name
From score as sc
Inner join course as c on sc. sc_courseId=c.co_id 
Where sc.sc_score<60;

如何实现将成绩转换成补考或者不补考的状态?
Select sc_number from score where sc_score<60;
Update score set sc_ismarkup=0 where sc_number in(Select sc_number from score where sc_score<60);

3.查询每个学生平均分,并以平均分排序

Select sc_number,avg(sc_score) from score 
group by sc_number order by avg(sc_score) desc;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值