收藏 分销(赏)

sql习题及答案.doc

上传人:w****g 文档编号:2393842 上传时间:2024-05-29 格式:DOC 页数:13 大小:62.05KB 下载积分:8 金币
下载 相关
sql习题及答案.doc_第1页
第1页 / 共13页
sql习题及答案.doc_第2页
第2页 / 共13页


点击查看更多>>
资源描述
题   1、 查询Student表中的所有记录的Sname、Ssex和Class列。 2、 查询教师所有的单位即不重复的Depart列。 3、 查询Student表的所有记录。 4、 查询Score表中成绩在60到80之间的所有记录。 5、 查询Score表中成绩为85,86或88的记录。 6、 查询Student表中“95031”班或性别为“女”的同学记录。 7、 以Class降序查询Student表的所有记录。 8、 以Cno升序、Degree降序查询Score表的所有记录。 9、 查询“95031”班的学生人数。 10、查询Score表中的最高分的学生学号和课程号。 11、查询‘3-105’号课程的平均分。 12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。 13、查询最低分大于70,最高分小于90的Sno列。 14、查询所有学生的Sname、Cno和Degree列。 15、查询所有学生的Sno、Cname和Degree列。 16、查询所有学生的Sname、Cname和Degree列。 17、查询“95033”班所选课程的平均分。 18、假设使用如下命令建立了一个grade表: create table grade(low numeric(3,0),upp numeric(3),rank char(1)); insert into grade values(90,100,'A'); insert into grade values(80,89,'B'); insert into grade values(70,79,'C'); insert into grade values(60,69,'D'); insert into grade values(0,59,'E'); 现查询所有同学的Sno、Cno和rank列。 19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。 20、查询score中选学一门以上课程的同学中分数为非最高分成绩的记录。 21、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。 22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。 23、查询“张旭“教师任课的学生成绩。 24、查询选修某课程的同学人数多于5人的教师姓名。 25、查询95033班和95031班全体学生的记录。 26、查询存在有85分以上成绩的课程Cno. 27、查询出“计算机系“教师所教课程的成绩表。 28、查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。 29、查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。 30、查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree. 31、查询所有教师和同学的name、sex和birthday. 32、查询所有“女”教师和“女”同学的name、sex和birthday. 33、查询成绩比该课程平均成绩低的同学的成绩表。 34、查询所有任课教师的Tname和Depart. 35 查询所有未讲课的教师的Tname和Depart. 36、查询至少有2名男生的班号。 37、查询Student表中不姓“王”的同学记录。 38、查询Student表中每个学生的姓名和年龄。 39、查询Student表中最大和最小的Sbirthday日期值。 40、以班号和年龄从大到小的顺序查询Student表中的全部记录。 41、查询“男”教师及其所上的课程。 42、查询最高分同学的Sno、Cno和Degree列。 43、查询和“李军”同性别的所有同学的Sname. 44、查询和“李军”同性别并同班的同学Sname. 45、查询所有选修“计算机导论”课程的“男”同学的成绩表 下面是参考答案: SQL语句练习题参考答案 1.select sname,ssex,class from student; 2. select distinct(depart) from teacher; or select distinct depart from teacher; 3.select * from student; 4.      select * from score where degree between 60 and 80;   or  select * from score where degree>=60 and degree<=80; 5.   select * from score where degree in (85,86,88);  or select * from score where degree=85 or degree=86 or degree=88; 6.select * from student where class=95031 or ssex='女'; 7.select * from student order by class desc; 8.        select * from score order by cno asc,degree desc; or select * from score order by cno,degree desc; 9.      select count(*) from student where class=95031; or select count(sno) from student where class=95031; 10. select Sno as '学号',cno as '课程号', degree as '最高分' from score where degree=(select max(degree) from score); 11. select avg(degree) from score where cno='3-105'; 12.       select cno,avg(degree) from score where cno like '3%' group by cno having count(sno)>5; or       select cno,avg(degree) from score where cno like '3%' group by cno having count(*)>5; 13.select sno from score group by sno having min(degree)>70 and max(degree)<90; 14.    select student.sname,o,score.degree from student,score where student.sno=score.sno; or select sname,cno,degree from student,score where student.sno=score.sno; or      select x.sname,o,y.degree from student x,score y where x.sno=y.sno; 15. Select score.sno,ame,score.degree from score,course where o=o; or select sno,cname,degree from score,course where o=o; or      select x.sno,ame,x.degree from score x,course y where o=o; 16.       select student.sname,ame,score.degree from student,course,score where student.sno=score.sno and o=o; or select sname,cname,degree from student,course,score where student.sno=score.sno and o=o; or    select x.sname,ame,z.degree from student x,course y,score z where x.sno=z.sno and o=o; 17. select cno,avg(degree) from score,student where student.sno=score.sno and class=95033 group by cno; or  select o,avg(y.degree) from student x,score y where x.sno=y.sno and x.class=95033 group by o; 18.select sno,cno,rank from score,grade where degree between low and upp [order by rank]; [ ]表示可有可无 19.       select * from score where cno='3-105' and degree>(select degree from score where sno='109' and cno='3-105'); or      select x.* from score x,score y where o='3-105' and x.degree>y.degree and y.sno='109' and o='3-105'; 20. 分析:1.成绩非本科最高select * from score where degree not in (select max(degree) from score group by cno)       选学一门以上的学生成绩:select sno from score group by sno having count(*)>1;       2.查询成绩非本科最高并且选1门以上的学生的成绩:        select * from score where degree not in(select max(degree) from score group by cno) group by sno having count(*)>1; or        select * from (select * from score where degree not in(select max(degree) from score group by cno)) as aa group by sno having count(*)>=2; 通用答案: select sno from       ( select * from score             where degree not in                   (select max(degree) from score group by cno)) as aa group by sno having count(*)>=2; 21.  select * from score where degree>(select degree from score where sno=109 and cno='3-105'); or    select x.* from score x,score y where x.degree>y.degree and y.sno=109 and o='3-105'; 22. select sno,sname,sbirthday from student where year(sbirthday)=(select year(sbirthday) from student where sno=108); 23.     select * from score where cno in(select cno from course where tno=(select tno from teacher where tname='张旭')); or    select cno,sno,degree from score where cno=(select o from course x,teacher y where x.tno=y.tno and y.tname='张旭'); 24.        select tname from teacher where tno in (select x.tno from course x,score y where o=o and o in (select cno from score group by cno having count(*)>5)); or        select tname from teacher where tno in(select tno from course where cno in(select cno from score group by cno having count(*)>5)); or      select tname from teacher where tno in(select x.tno from course x,score y where o=o group by x.tno having count(x.tno)>5); 25.   select * from student where class in ('95033','95031'); or  select * from student where class=95033 or class=95031; 26.select distinct cno from score where degree in (select degree from score where degree>85); 27.       select * from score where cno in (select cno from course where tno in (select tno from teacher where depart='计算机系')); or  select * from score where cno in(select o from course x,teacher y where y.tno=x.tno and y.depart='计算机系'); 28.select tname,prof from teacher where depart='计算机系' and prof not in (select prof from teacher where depart='电子工程系'); 29.  select * from score where cno='3-105' and degree>(select min(degree) from score where cno='3-245') order by degree desc; or      select * from score where cno='3-105'and degree>any(select degree from score where cno='3-245') order by degree desc; 30.  select * from score where cno='3-105' and degree>(select max(degree) from score where cno='3-245'); or select * from score where cno='3-105' and degree>all(select degree from score where cno='3-245'); 31. select sname as name,ssex as sex,sbirthday as birthday from student  union  select tname,tsex,tbirthday from teacher; 32.  select sname as name,ssex as sex,sbirthday as birthday from student where ssex='女'  union  select tname,tsex,tbirthday from teacher where tsex='女'; 33.select * from score a where degree<(select avg(degree) from score b where o=o); 34. select tname,depart from teacher where tno in(select tno from course); 35. select tname,depart from teacher where tno not in (select tno from course); 36.select class from student where ssex='男' group by class having count(sno)>=2; 37. select * from student where sname not like '王%'; 38.select sname as '姓名',2010-year(sbirthday) as '年龄' from student; 39.       select sbirthday from student where sbirthday in (select min(sbirthday) from student)     union     select sbirthday from student where sbirthday in (select max(sbirthday) from student); or    select sbirthday from student where sbirthday=(select min(sbirthday) from student) or sbirthday=(select max(sbirthday) from student); 40.select * from student order by class desc,sbirthday; 41.   select cname,tname from course,teacher where course.tno=teacher.tno and tsex='男';  or   select ame,teacher.tname from course,teacher where course.tno=teacher.tno and tsex='男';  or  select cname,tname from course x,teacher y where x.tno=y.tno and y.tsex='男';  or  select x.tname,ame from teacher x,course y where x.tno=y.tno and x.tsex='男';  42. select * from score where degree in (select max(degree) from score); 43.select sname from student where ssex=(select ssex from student where sname='李军'); 44. select sname from student where ssex=(select ssex from student where sname='李军') and class=(select class from student where sname='李军'); 45.select * from score where sno in(select sno from student where ssex='男') and cno in(select cno from course where cname='计算机导论');   注意:20题的前两个答案在sql server 中不支持,在mysql中支持 如果题答案中有错误,请记得及时通知我让我纠正错误! 我的邮箱地址:chuxue_white@  
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服