数据库SQL题目解答.docx

上传人:b****5 文档编号:29632751 上传时间:2023-07-25 格式:DOCX 页数:12 大小:508.42KB
下载 相关 举报
数据库SQL题目解答.docx_第1页
第1页 / 共12页
数据库SQL题目解答.docx_第2页
第2页 / 共12页
数据库SQL题目解答.docx_第3页
第3页 / 共12页
数据库SQL题目解答.docx_第4页
第4页 / 共12页
数据库SQL题目解答.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数据库SQL题目解答.docx

《数据库SQL题目解答.docx》由会员分享,可在线阅读,更多相关《数据库SQL题目解答.docx(12页珍藏版)》请在冰豆网上搜索。

数据库SQL题目解答.docx

数据库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;

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

当前位置:首页 > 医药卫生 > 基础医学

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

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