最后
现在其实从大厂招聘需求可见,在招聘要求上有高并发经验优先,包括很多朋友之前都是做传统行业或者外包项目,一直在小公司,技术搞的比较简单,没有怎么搞过分布式系统,但是现在互联网公司一般都是做分布式系统。
所以说,如果你想进大厂,想脱离传统行业,这些技术知识都是你必备的,下面自己手打了一份Java并发体系思维导图,希望对你有所帮助。
select 查询结果 [学号,平均成绩:汇总函数avg(成绩)]
from 从哪张表中查找数据 [涉及到成绩:成绩表score]
where 查询条件 [限制条件:不及格课程,平均成绩<60]
group by 分组 [每个学生的平均:按学号分组]
having 对分组结果指定条件 [限制条件:课程数目>2,汇总函数count(课程号)>2]
order by 对查询结果排序[没有];
*/
select 学号, avg(成绩) as 平均成绩
from score
where 成绩 <60
group by 学号
having count(课程号)>2;
1.查询所有课程成绩小于60分学生的学号、姓名
【知识点】子查询
1.翻译成大白话
1)查询结果:学生学号,姓名
2)查询条件:所有课程成绩 < 60 的学生,需要从成绩表里查找,用到子查询
第1步,写子查询(所有课程成绩 < 60 的学生)
select 查询结果[学号]
from 从哪张表中查找数据[成绩表:score]
where 查询条件[成绩 < 60]
group by 分组[没有]
having 对分组结果指定条件[没有]
order by 对查询结果排序[没有]
limit 从查询结果中取出指定行[没有];
select 学号
from student
where 成绩 < 60;
第2步,查询结果:学生学号,姓名,条件是前面1步查到的学号
select 查询结果[学号,姓名]
from 从哪张表中查找数据[学生表:student]
where 查询条件[用到运算符in]
group by 分组[没有]
having 对分组结果指定条件[没有]
order by 对查询结果排序[没有]
limit 从查询结果中取出指定行[没有];
*/
select 学号,姓名
from student
where 学号 in (
select 学号
from student
where 成绩 < 60
);
1.查询平均成绩大于85的所有学生的学号、姓名和平均成绩
select a.学号,a.姓名, avg(b.成绩) as 平均成绩
from student as a left join score as b
on a.学号 = b.学号
group by a.学号
having avg(b.成绩)>85;
2.查询出每门课程的及格人数和不及格人数
– 考察case表达式
select 课程号,
sum(case when 成绩>=60 then 1
else 0
end) as 及格人数,
sum(case when 成绩 < 60 then 1
else 0
end) as 不及格人数
from score
group by 课程号;
3.查询课程编号为0003且课程成绩在80分以上的学生的学号和姓名
select a.学号,a.姓名
from student as a inner join score as b on a.学号=b.学号
where b.课程号=‘0003’ and b.成绩>80;
4.查询不同老师所教不同课程平均分从高到低显示
select a.教师号,a.教师姓名,avg(c.成绩)
from teacher as a
inner join course as b
on a.教师号= b.教师号
inner join score c on b.课程号= c.课程号
group by a.教师姓名
order by avg(c.成绩) desc;
5.查询课程编号为“0001”的课程比“0002”的课程成绩高的所有学生的学号
select a.学号
from
(select 学号 ,成绩 from score where 课程号=01) as a
inner join
(select 学号 ,成绩 from score where 课程号=02) as b
on a.学号 =b.学号
inner join student c on c.学号 =a.学号
where a.成绩 >b.成绩 ;
6.查询学过“孟扎扎”老师所教的所有课的同学的学号、姓名
select s.学号 ,s.姓名,a.学号 ,b.课程号,c.教师号 ,c.教师姓名
from student as s
inner join score as a
on s.学号 =a.学号
inner join course b on a.课程号 =b.课程号
inner join teacher c on b.教师号 = c.教师号
where c.教师姓名 =‘孟扎扎’;
7.查询没学过"孟扎扎"老师讲授的任一门课程的学生姓名(与上题类似,"没学过"用not in来实现)
select 姓名 ,学号
from student
where 学号 not in (
select a.学号
from student as a
inner join score as b
on a.学号 =b.学号
inner join course as c on b.课程号 =c.课程号
inner join teacher as d on c.教师号 =d.教师号
where d.教师姓名 =‘孟扎扎’);
8.查询选修“孟扎扎”老师所授课程的学生中成绩最高的学生姓名及其成绩
select a.姓名,b.成绩
from student as a
inner join score as b on a.学号=b.学号
inner join course as c on b.课程号 =c.课程号
inner join teacher as d on c.教师号 = d.教师号
where d.教师姓名 = ‘孟扎扎’
order by b.成绩 desc limit 1;
9.按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
select a.学号,avg(a.成绩 ),
max(case when b.课程名称 = ‘数学’ then a.成绩 else null end ) as ‘数学’,
max(case when b.课程名称 = ‘语文’ then a.成绩 else null end ) as ‘语文’,
max(case when b.课程名称 = ‘英语’ then a.成绩 else null end ) as ‘英语’
from score as a
inner join course as b
on a.课程号 =b.课程号
group by a.学号 ;
总结
这份面试题几乎包含了他在一年内遇到的所有面试题以及答案,甚至包括面试中的细节对话以及语录,可谓是细节到极致,甚至简历优化和怎么投简历更容易得到面试机会也包括在内!也包括教你怎么去获得一些大厂,比如阿里,腾讯的内推名额!
某位名人说过成功是靠99%的汗水和1%的机遇得到的,而你想获得那1%的机遇你首先就得付出99%的汗水!你只有朝着你的目标一步一步坚持不懈的走下去你才能有机会获得成功!
成功只会留给那些有准备的人!
内!也包括教你怎么去获得一些大厂,比如阿里,腾讯的内推名额!
某位名人说过成功是靠99%的汗水和1%的机遇得到的,而你想获得那1%的机遇你首先就得付出99%的汗水!你只有朝着你的目标一步一步坚持不懈的走下去你才能有机会获得成功!
成功只会留给那些有准备的人!
[外链图片转存中…(img-mwuOkHic-1715604323915)]