sql习题及答案.docx

上传人:b****5 文档编号:8271771 上传时间:2023-01-30 格式:DOCX 页数:8 大小:16.91KB
下载 相关 举报
sql习题及答案.docx_第1页
第1页 / 共8页
sql习题及答案.docx_第2页
第2页 / 共8页
sql习题及答案.docx_第3页
第3页 / 共8页
sql习题及答案.docx_第4页
第4页 / 共8页
sql习题及答案.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

sql习题及答案.docx

《sql习题及答案.docx》由会员分享,可在线阅读,更多相关《sql习题及答案.docx(8页珍藏版)》请在冰豆网上搜索。

sql习题及答案.docx

sql习题及答案

 

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表:

createtablegrade(lownumeric(3,0),uppnumeric(3),rankchar

(1));

insertintogradevalues(90,100,'A');

insertintogradevalues(80,89,'B');

insertintogradevalues(70,79,'C');

insertintogradevalues(60,69,'D');

insertintogradevalues(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.selectsname,ssex,classfromstudent;

2.

selectdistinct(depart)fromteacher;

or

selectdistinctdepartfromteacher;

3.select*fromstudent;

4.     

select*fromscorewheredegreebetween60and80;  

or 

select*fromscorewheredegree>=60anddegree<=80;

5. 

select*fromscorewheredegreein(85,86,88); 

or

select*fromscorewheredegree=85ordegree=86ordegree=88;

6.select*fromstudentwhereclass=95031orssex='女';

7.select*fromstudentorderbyclassdesc;

8.       

select*fromscoreorderbycnoasc,degreedesc;

or

select*fromscoreorderbycno,degreedesc;

9.     

selectcount(*)fromstudentwhereclass=95031;

or

selectcount(sno)fromstudentwhereclass=95031;

10.selectSnoas'学号',cnoas'课程号',degreeas'最高分'fromscorewheredegree=(selectmax(degree)fromscore);

11.selectavg(degree)fromscorewherecno='3-105';

12.      

selectcno,avg(degree)fromscorewherecnolike'3%'groupbycnohavingcount(sno)>5;

or      

selectcno,avg(degree)fromscorewherecnolike'3%'groupbycnohavingcount(*)>5;

13.selectsnofromscoregroupbysnohavingmin(degree)>70andmax(degree)<90;

14.   

selectstudent.sname,o,score.degreefromstudent,scorewherestudent.sno=score.sno;

or

selectsname,cno,degreefromstudent,scorewherestudent.sno=score.sno;

or     

selectx.sname,o,y.degreefromstudentx,scoreywherex.sno=y.sno;

15.

Selectscore.sno,ame,score.degreefromscore,coursewhereo=o;

or

selectsno,cname,degreefromscore,coursewhereo=o;

or     

selectx.sno,ame,x.degreefromscorex,courseywhereo=o;

16.     

selectstudent.sname,ame,score.degreefromstudent,course,scorewherestudent.sno=score.snoando=o;

or

selectsname,cname,degreefromstudent,course,scorewherestudent.sno=score.snoando=o;

or   

selectx.sname,ame,z.degreefromstudentx,coursey,scorezwherex.sno=z.snoando=o;

17.

selectcno,avg(degree)fromscore,studentwherestudent.sno=score.snoandclass=95033groupbycno;

or 

selecto,avg(y.degree)fromstudentx,scoreywherex.sno=y.snoandx.class=95033groupbyo;

18.selectsno,cno,rankfromscore,gradewheredegreebetweenlowandupp[orderbyrank];[]表示可有可无

19.      

select*fromscorewherecno='3-105'anddegree>(selectdegreefromscorewheresno='109'andcno='3-105');

or     

selectx.*fromscorex,scoreywhereo='3-105'andx.degree>y.degreeandy.sno='109'ando='3-105';

20.

分析:

1.成绩非本科最高select*fromscorewheredegreenotin(selectmax(degree)fromscoregroupbycno)

     选学一门以上的学生成绩:

selectsnofromscoregroupbysnohavingcount(*)>1;

     2.查询成绩非本科最高并且选1门以上的学生的成绩:

      

select*fromscorewheredegreenotin(selectmax(degree)fromscoregroupbycno)groupbysnohavingcount(*)>1;

or       

select*from(select*fromscorewheredegreenotin(selectmax(degree)fromscoregroupbycno))asaagroupbysnohavingcount(*)>=2;

通用答案:

selectsnofrom

     ( select*fromscore

          wheredegreenotin

                 (selectmax(degree)fromscoregroupbycno))asaa

groupbysnohavingcount(*)>=2;

21. 

select*fromscorewheredegree>(selectdegreefromscorewheresno=109andcno='3-105');

or   

selectx.*fromscorex,scoreywherex.degree>y.degreeandy.sno=109ando='3-105';

22.

selectsno,sname,sbirthdayfromstudentwhereyear(sbirthday)=(selectyear(sbirthday)fromstudentwheresno=108);

23.    

select*fromscorewherecnoin(selectcnofromcoursewheretno=(selecttnofromteacherwheretname='张旭'));

or   

selectcno,sno,degreefromscorewherecno=(selectofromcoursex,teacherywherex.tno=y.tnoandy.tname='张旭');

24.       

selecttnamefromteacherwheretnoin(selectx.tnofromcoursex,scoreywhereo=oandoin(selectcnofromscoregroupbycnohavingcount(*)>5));

or       

selecttnamefromteacherwheretnoin(selecttnofromcoursewherecnoin(selectcnofromscoregroupbycnohavingcount(*)>5));

or     

selecttnamefromteacherwheretnoin(selectx.tnofromcoursex,scoreywhereo=ogroupbyx.tnohavingcount(x.tno)>5);

25. 

select*fromstudentwhereclassin('95033','95031');

or 

select*fromstudentwhereclass=95033orclass=95031;

26.selectdistinctcnofromscorewheredegreein(selectdegreefromscorewheredegree>85);

27.      

select*fromscorewherecnoin(selectcnofromcoursewheretnoin(selecttnofromteacherwheredepart='计算机系'));

or 

select*fromscorewherecnoin(selectofromcoursex,teacherywherey.tno=x.tnoandy.depart='计算机系');

28.selecttname,proffromteacherwheredepart='计算机系'andprofnotin(selectproffromteacherwheredepart='电子工程系');

29. 

select*fromscorewherecno='3-105'anddegree>(selectmin(degree)fromscorewherecno='3-245')orderbydegreedesc;

or     

select*fromscorewherecno='3-105'anddegree>any(selectdegreefromscorewherecno='3-245')orderbydegreedesc;

30. 

select*fromscorewherecno='3-105'anddegree>(selectmax(degree)fromscorewherecno='3-245');

or

select*fromscorewherecno='3-105'anddegree>all(selectdegreefromscorewherecno='3-245');

31.

selectsnameasname,ssexassex,sbirthdayasbirthdayfromstudent

 union

 selecttname,tsex,tbirthdayfromteacher;

32.

 selectsnameasname,ssexassex,sbirthdayasbirthdayfromstudentwheressex='女'

 union

 selecttname,tsex,tbirthdayfromteacherwheretsex='女';

33.select*fromscoreawheredegree<(selectavg(degree)fromscorebwhereo=o);

34.selecttname,departfromteacherwheretnoin(selecttnofromcourse);

35.selecttname,departfromteacherwheretnonotin(selecttnofromcourse);

36.selectclassfromstudentwheressex='男'groupbyclasshavingcount(sno)>=2;

37.select*fromstudentwheresnamenotlike'王%';

38.selectsnameas'姓名',2010-year(sbirthday)as'年龄'fromstudent;

39.     

selectsbirthdayfromstudentwheresbirthdayin(selectmin(sbirthday)fromstudent)

   union

   selectsbirthdayfromstudentwheresbirthdayin(selectmax(sbirthday)fromstudent);

or   

selectsbirthdayfromstudentwheresbirthday=(selectmin(sbirthday)fromstudent)orsbirthday=(selectmax(sbirthday)fromstudent);

40.select*fromstudentorderbyclassdesc,sbirthday;

41.

 selectcname,tnamefromcourse,teacherwherecourse.tno=teacher.tnoandtsex='男';

 or

  selectame,teacher.tnamefromcourse,teacherwherecourse.tno=teacher.tnoandtsex='男';

 or

 selectcname,tnamefromcoursex,teacherywherex.tno=y.tnoandy.tsex='男';

 or

 selectx.tname,amefromteacherx,courseywherex.tno=y.tnoandx.tsex='男';

 42.select*fromscorewheredegreein(selectmax(degree)fromscore);

43.selectsnamefromstudentwheressex=(selectssexfromstudentwheresname='李军');

44.selectsnamefromstudentwheressex=(selectssexfromstudentwheresname='李军')andclass=(selectclassfromstudentwheresname='李军');

45.select*fromscorewheresnoin(selectsnofromstudentwheressex='男')andcnoin(selectcnofromcoursewherecname='计算机导论');

 

注意:

20题的前两个答案在sqlserver中不支持,在mysql中支持

如果题答案中有错误,请记得及时通知我让我纠正错误!

我的邮箱地址:

*********************

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 院校资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1