select xm,count(xm) as jycs from borrow leftjoin reader on borrow.dzzh=reader.dzzh where sf='研究生'groupby xm orderby jycs desc,xm desc;开始你的任务吧,祝你成功!
use library; #代码开始 #答案1 select sm from book where cbs="上海古籍出版社" and sm!="李白全集"; #答案2 select sm,sj from book where sj>(selectavg(sj) from book); #答案2 select txm,sm,sj from book where sj=(selectmax(sj) from book); #答案3 select txm,sm,sj from book where sj=(selectmin(sj) from book); #代码结束 任务描述 本关任务: 第一题 查询曾经借过图书的读者的读者证号和姓名 第二题 查询曾经没有被借阅的图书的条形码和书名 第三题 查询与孙思旺借过相同图书的读者的读者证号和姓名,按读者证号升序排列 第四题 查询借阅过李白全集的读者所借过的其他图书的书名 按书名升序排列
开始你的任务吧,祝你成功!
use library; #代码开始 #题目1 select dzzh,xm from reader where reader.dzzh in (select dzzh from borrow); #题目2 select txm,sm from book where book.txm notin (select txm from borrow); #题目3 select dzzh,xm from reader where reader.dzzh in (select dzzh from borrow where txm in (select txm from borrow where borrow.dzzh=(select dzzh from reader where xm='孙思旺'))) and dzzh!='006'orderby dzzh asc; #题目4 select sm from book where book.txm in (select txm from borrow where borrow.dzzh in (select dzzh from borrow where borrow.txm=(select txm from book where sm="李白全集"))) and sm!="李白全集" orderby sm asc; #代码结束
select dzzh,xm from reader where reader.dzzh in (select dzzh from borrow);
#题目2
select txm,sm from book where book.txm notin (select txm from borrow);
#题目3
select dzzh,xm from reader where reader.dzzh in (select dzzh from borrow where txm in (select txm from borrow where borrow.dzzh=(select dzzh from reader where xm='孙思旺'))) and dzzh!='006' order by dzzh asc;
#题目4
select sm from book where book.txm in (select txm from borrow where borrow.dzzh in (select dzzh from borrow where borrow.txm=(select txm from book where sm="李白全集"))) and sm!="李白全集" order by sm asc;
id name class_id 1 Emma 2 2 Mary 4 3 Allen (null) 4 Kevin 1 5 Rose 2 6 James 1 tb_class表数据:
id name 1 软件1631 2 软件1632 3 测试1631 4 测试1632 测试说明 平台会对你编写的代码进行测试:
预期输出:
studentName className Kevin 软件1631 James 软件1631 Emma 软件1632 Rose 软件1632 Mary 测试1632 开始你的任务吧,祝你成功!
第一关
1 2 3 4 5 6 7 8 9 10 11 12 13
USE School; ########## 查询数据表中学生姓名和对应的班级 ########## #请在此处添加实现代码 ########## Begin ########## select tb_student.name as studentName,tb_class.name as className from tb_student innerjoin tb_class on tb_student.class_id=tb_class.id ########## End ##########
USE School; ########## 使用左外连接查询所有学生姓名和对应的班级 ########## #请在此处添加实现代码 ########## Begin ########## #studentName列在左,className列在右 select tb_student.name as studentName,tb_class.name as className from tb_class rightjoin tb_student #class表右插入student表,student表在左边,以在左边的为name(emma-mary-allen-kevin-rose-james)为优先顺序先排(先放), #然后将class表根据id号相等后连接 on tb_class.id=tb_student.class_id; ########## End ########## ########## 使用右外连接查询所有学生姓名和对应的班级 ########## #请在此处添加实现代码 ########## Begin ########## #studentName列在左,className列在右 select tb_student.name as studentName,tb_class.name as className from tb_class leftjoin tb_student#class表左插入student表,class表在左边,以在左边表的name(1631-1632-1631-1632)为顺序,根据class与student表的id号相等,连接 on tb_class.id=tb_student.class_id; ########## End ##########
第三关
1 2 3 4 5 6 7 8 9 10
USE School; ########## 查询所有班级里分数在90分以上的学生的姓名和学生的成绩以及学生所在的班级 ########## #请在此处添加实现代码 ########## Begin ########## select s1.name as studentName,score,s2.name as className from tb_student as s1,tb_class as s2 where s1.class_id=s2.id and s1.score>90 orderby score desc ;
第四关
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
USE School; #请在此处添加实现代码 ########## Begin ########## #1.查询表中2,3,4年级中分别男女的总人数 select gradeId,sex,count(*) from student where gradeid in (2,3,4) groupby gradeid,sex; -- 方法2 select gradeId,sex,count(*) from student groupby gradeid,sex having gradeid in (2,3,4);