数据库SQL题目解答.docx
- 文档编号:29632751
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:12
- 大小:508.42KB
数据库SQL题目解答.docx
《数据库SQL题目解答.docx》由会员分享,可在线阅读,更多相关《数据库SQL题目解答.docx(12页珍藏版)》请在冰豆网上搜索。
数据库SQL题目解答
SQL上机题
对于教学数据库的三个基本表:
学生Student(SNo,SNAME,AGE,SEX)
其属性是学生学号,学生名称,年龄,性别。
选课SC(SNo,CNo,GRADE)
其属性是学生学号,学生选的课程号,成绩。
课程Course(CNo,CNAME,TEACHER)
其属性是全部课程号,课程名称,教师名称。
1.检索年龄不小于22岁的男学生的学号和姓名
SELECTS#SNAME
FROMS
WHEREAGE>=22;
2.查询所有姓李的学生的姓名和年龄。
SELECTSNAME,AGE
FROMS
WHERESNAMELIKE‘李%’;
3.查询已经选过课的学生学号。
SELECTS.S#
FROMS,SC
WHERES.S#IN(SELECTS#
FROMSC
WHERENOTEXISTS(C#)
);
4.查询尚无成绩的学生学号。
SELECTS.S#
FROMS,SC
WHERES.S#IN(SELECTS#
FROMSC
WHERENOTEXISTS(GRADE)
);
5.查询各门课程的最高成绩,要求显示课程号及最高成绩。
SELECTC#,MAX(GRADE)最高分
FROMSC
GROUPBYC#;
6.查询课程号为“01”的学生成绩,要求显示学号、姓名及成绩。
SELECTS.S#,SNAME,GRADE
FROMS,SC
WHERES.S#=SC.S#ANDC#=01
7.查询每个学生平均成绩大于90的学号。
SELECTS.S#
FROMS,SC
WHERES.SCIN(SELECTS#
FROMSC
GROUPBYS#
HAVINGAVG(GRADE)>90
);
8.统计每门课程的学生选修人数(超过10人的课程才统计)。
要求显示课程号和人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
SELECTC#,COUNT(S#)人数
FROMSC
GROUPBYC#
HAVINGCOUNT(S#)>=10
ORDERBYCOUNT(S#)DESC;
9.查询选了张三老师课的学生学号。
SELECTS.S#
FROMS
WHERES#IN(SELECTS#
FROMSC
WHEREC#IN(SELECTC#
FROMC
WHERECNAMELIKE‘张三’)
);
10.查询每个学生超过他选修课程平均成绩的学号及课程号。
SELECTA.S#,A.C#
FROMSCASA,(SELECTB.S#,AVG(B.GRADE)AVERAGE
FROMSCASB
GROUPBYB.S#)ASC(S#,AVERAGE)
WHEREA.S#=C.S#ANDA.GRADE>C.AVERAGE
11.三个表中,SNO、SNAME、CNO、GRADE是经常被一起查询的属性。
为了方便查询,建立一个视图V_STDTGrade,其属性为以上四个属性,写出建立V_STDTGrade的语句。
CREATEVIEWV_STDTGrade(S#,SNAME,C#,GRADE)
ASSELECTS.S#,SNAME,C#,GRADE
FROMS,SC,
WHERES.S#=SC.S#
1.检索年龄不小于岁的男学生的学号和姓名
SELECTS#,SNAME
FROMS
WHEREAGE>=22;
2.查询所有姓李的学生的姓名和年龄。
SELECTSNAME,AGE
FROMS
WHERESNAMELIKE'李%';
3.查询已经选过课的学生学号。
SELECTS.S#
FROMS,SC
WHERENOTEXISTS(SELECTS#
FROMSC
--WHEREC#ISNOTNULL
);
4.查询尚无成绩的学生学号。
SELECTS.S#
FROMS,SC
WHERES.S#IN(SELECTS#
FROMSC
WHEREGRADEISNULL
);
5.查询各门课程的最高成绩,要求显示课程号及最高成绩。
SELECTC#,MAX(GRADE)最高分
FROMSC
GROUPBYC#;
6.查询课程号为“”的学生成绩,要求显示学号、姓名及成绩。
SELECTS.S#,SNAME,GRADE
FROMS,SC
WHERES.S#=SC.S#ANDC#=01
7.查询每个学生平均成绩大于80的学号。
SELECTS.S#
FROMS,SC
WHERES.SCIN(SELECTS#
FROMSC
GROUPBYS#
HAVINGAVG(GRADE)>80
);
8.统计每门课程的学生选修人数(超过人的课程才统计)。
要求显示课程号和人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
SELECTC#,COUNT(S#)人数
FROMSC
GROUPBYC#
HAVINGCOUNT(S#)>=10
ORDERBYCOUNT(S#)DESC;
9.查询选了张三老师课的学生学号。
SELECTS.S#
FROMS
WHERES#IN(SELECTS#
FROMSC
WHEREC#IN(SELECTC#
FROMC
WHERETEACHERLIKE'张老师')
);
10.查询每个学生超过他选修课程平均成绩的学号及课程号。
SELECTA.S#,A.C#,A.GRADE,C.AVERAGE
FROMSCASA,(SELECTB.S#,AVG(B.GRADE)AVERAGE
FROMSCASB
GROUPBYB.S#)ASC(S#,AVERAGE)
WHEREA.S#=C.S#ANDA.GRADE>C.AVERAGE;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 SQL 题目 解答