-
20200325 数据库连接查询面试题作业
2020-07-24 10:57老师不好意思,我想自己补充一下,也希望你帮忙看一下我这里的语句出错在哪,各位同学也可以参与帮忙解决
我想补充一下

我想让语文最高分的学生和性别也显示出来,而我这里通过group by分组显示不对,不拉不拉不知道怎么表达 -
20200326 连接子查询作业
2020-07-24 10:57这是作业:


你好可可老师,我暂且先用分组查询来做,目前虽然看回复中的同学也有举例些关联查询的,但我目前觉得分组容易理解,当然也是个人的基础还不够还有待深研,另外我有些疑问group by后面不是分要查询的字段吗?比如我这样(请看图)


疑问文字描述在图里,注重通过作业和出问题的图的区别看group by后面就好,如果疑问造成老师您伤脑筋请见谅,是我个人的表述不好 -
20200326 连接子查询作业
2020-07-24 10:57数据库系列课,让我重新找回了大学时代学习计算机数据库的感觉,不过老师的讲解深入浅出,之前大学时候觉得学的很渣的查询语句瞬间明朗了起来,跟着好好学,相信大家面试都会顺利的~fighting
年后刚找到新工作的3ice。。。。 -
20200324 连接查询作业
2020-07-24 10:57-- 根据课上的emp和dept表完成下列作业:
-- 1、查询张姓员工的员工信息和所在部门信息。
#判断以哪张表为基表,看最主要的是得到那张表的信息,或者要筛选的是哪那张表的信息
SELECT * from emp e left JOIN dept d on e.dept_id =d.id where e.name like '张%';-- 2、查询张三丰管理了几个员工
select count(*) from emp e1 INNER JOIN emp e2 on e1.leader=e2.dept_id and e1.name='张三丰';-- 3、查询出所有实习员工(实习员工无部门信息)
select * from emp e left join dept d on e.dept_id = d.id where d.id is NULL; -
20200326 连接子查询作业
2020-07-24 10:57查询出每门课程都大于80分的学生姓名
select sname from tb_lemon_score group by sname having MIN(score)>80;
给出所有购入物品为两种或两种以上的购物人记录
select 购物人 from 购物单 where 数量>=2 group by 购物人;
-
20200325 数据库连接查询面试题作业
2020-07-24 10:57#6 查询出语文最高分
SELECT Max(sc.score) from sc inner join course as c on sc.Cno=c.Cno and c.Cname='语文'
#8 查询语数外三门成绩的平均分
select c.Cname,avg(sc.score) from course as c inner join sc on c.Cno=sc.Cno
Group by c.Cname
#9 查询报名孤独求败老师课程的学生信息
select * from teacher as t inner join course as c
on t.Tno=c.Tno and t.Tname='孤独求败'
inner join sc on c.Cno=sc.Cno -
20200326 连接子查询作业
2020-07-24 10:57#用一条sql语句查询每门课成绩都大于80分的学生 -- 分组查询 SELECT sname,MIN(score) 最小成绩 FROM tb_lemon_score GROUP BY sname HAVING MIN(score > 80); -- 非关联子查询 SELECT * FROM tb_lemon_score WHERE sname NOT IN (SELECT sname FROM tb_lemon_score WHERE score <= 80); -- 关联子查询 SELECT * FROM tb_lemon_score t1 WHERE NOT EXISTS (SELECT * FROM tb_lemon_score t2 WHERE t1.sname=t2.sname and t2.score<=80); #用sql语句查询所有购入商品为两种或两种以上的购物人 -- 非关联子查询 SELECT sname FROM (SELECT sname,COUNT(merch) FROM shopping_list GROUP BY sname HAVING COUNT(merch)>=2) as list; -- 关联子查询 SELECT DISTINCT sname FROM shopping_list s1 WHERE EXISTS (SELECT * FROM shopping_list s2 WHERE s2.sname=s1.sname GROUP BY s2.sname HAVING COUNT(s2.merch)>=2) -
20200325 数据库连接查询面试题作业
2020-07-24 10:57#6 查询出语文最高分
子查询
select max(score) from sc where Cno=(select Cno from course where Cname='语文');
联表查询
select max(score) from sc join course c using (Cno) where Cname='语文';
#7 查询没有参与语文考试的学生信息
子查询
select * from student where Sno not in (select distinct Sno from sc where Cno=(select Cno from course where Cname='语文'));
联表查询
select * from student where Sno not in (select Sno from student join sc using (Sno) join course c using (Cno) where Cname='语文');
#8 查询语数外三门成绩的平均分
select Cname, avg(score) from sc join course c using (Cno) group by Cno;#9 查询报名孤独求败老师课程的学生信息
方法一:子查询
select * from student where Sno in (select Sno from sc where Cno in (select Cno from course where Tno in (select Tno from teacher where Tname='孤独求败')));
方法二:联表查询
select * from student where Sno in (select Sno from course join sc using (Cno) join teacher using (Tno) where Tname='孤独求败');
#10 没有报名孤独求败老师课程的学生信息
方法一:子查询
select * from student where Sno not in (select Sno from sc where Cno in (select Cno from course where Tno in (select Tno from teacher where Tname='孤独求败')));
方法二:联表查询
select * from student where Sno not in (select Sno from course join sc using (Cno) join teacher using (Tno) where Tname='孤独求败');
-
20200326 连接子查询作业
2020-07-24 10:57老师讲的第四种答案
select * from tb_lemon_score t1 where not exist (select * from tb_lemon_score t2 where t1.sname=t2.sname and t2.score <=80)
可以改成 select * from tb_lemon_score t1 where t1.sname not exist (select * from tb_lemon_score t2 where t2.score <=80) 吗?课堂上发不出去。。 -
20200325 数据库连接查询面试题作业
2020-07-24 10:572 查询无崖子授课信息
select * from course c join teacher t using (Tno) where t.Tname='无崖子';
如果两张表合并后不想要重复的列,可以用using去去重的吧。 -
20200325 数据库连接查询面试题作业
2020-07-24 10:57本节课作业:
#6 查询出语文最高分
select Max(score) from SC b
inner join Course c on b.Cno=c.Cno
where c.Cname="语文";
#8 查询语数外三门成绩的平均分
select avg(score) from sc b
inner join course c on b.Cno=c.Cno
group by c.Cno
#9 查询报名孤独求败老师课程的学生信息
select * from teacher d
inner join course c on d.Tno=c.Tno
and d.Tname="孤独求败"
inner joinsc b on c.Cno=b.Cno
right join Student a on a.Sno=b.Sno;






































