题目1:
======
为管理岗位业务培训信息,建立3个表:
S(S#,SN,SD,SA) S#,SN,SD,SA分别代表学号、学员姓名、所属单位、学员年龄
C(C#,CN) C#,CN分别代表课程编号、课程名称
SC(S#,C#,G) S#,C#,G分别代表学号、所选修的课程编号、学习成绩
1.使用标准SQL嵌套语句查询选修课程名称为 税收基础 的学员学号和姓名
SelectSN,SDFROMS
Where[S#]IN (Select[S#]FROMC,SC
WhereC.[C#]=SC.[C#] ANDCN=N'税收基础') 2.使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
SelectS.SN,S.SDFROMS,SC
WhereS.[S#]=SC.[S#]ANDSC.[C#]='C2'
3.使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
SelectSN,SDFROMS
Where[S#]NOTIN
(Select[S#]FROMSC
Where[C#]='C5') 4.使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
网上流传的错误答案:
SelectSN,SDFROMS
Where[S#]IN(Select[S#]FROMSC RIGHTJOIN
CONSC.[C#]=C.[C#]
GROUPBY[S#]
HAVINGCOUNT(*)=COUNT([S#]))
经过调试验证的正确答案:
SELECTSN,SDFROMS
WHERES#
IN(SELECTSC.S#
FROMSCRIGHTJOINC
ONSC.C#=C.C#
GROUPBYSC.S#--在结果集中以学生分组,分组后的SC.C#选课数=C.C#课程数即为全部课程
HAVINGCOUNT(distinct(SC.C#))--注意:一个学生同一门课程可能有多条成绩记录,需要distinct
=(selectcount(*)fromC)--注意:HAVING条件不能用COUNT(distinct(SC.C#))=COUNT(distinct(C.C#)
)--子查询获得选修全部课程的学生学号 5.查询选修了课程的学员人数
Select学员人数=COUNT(DISTINCT[S#])FROMSC 6.查询选修课程超过5门的学员学号和所属单位
SelectSN,SDFROMS
Where[S#]IN( Select[S#]FROMSC
GROUPBY[S#]
HAVING COUNT( DISTINCT[C#] ) > 5 )题目2:
======
已知关系模式:
S(SNO,SNAME)学生关系。SNO为学号,SNAME为姓名
C(CNO,CNAME,CTEACHER)课程关系。CNO为课程号,CNAME为课程名,CTEACHER为任课教师
SC(SNO,CNO,SCGRADE)选课关系。SCGRADE为成绩
1.找出没有选修过“李明”老师讲授课程的所有学生姓名
SelectSNAMEFROMS
WhereNOTEXISTS(Select*FROMSC,C
WhereSC.CNO=C.CNO
ANDCNAME='李明'
ANDSC.SNO=S.SNO) 2.列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
SelectS.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)
FROM S , SC ,
(SelectSNO FROMSC
WhereSCGRADE<60
GROUPBYSNO
HAVINGCOUNT(DISTINCTCNO)>=2) A
WhereS.SNO=A.SNOANDSC.SNO=A.SNO
GROUPBYS.SNO,S.SNAME 3.列出既学过“1”号课程,又学过“2”号课程的所有学生姓名
SelectS.SNO,S.SNAME
FROMS,
(SelectSC.SNO FROMSC,C
WhereSC.CNO=C.CNO
ANDC.CNAMEIN('1','2')
GROUPBYSNO
HAVINGCOUNT(DISTINCTCNO)=2
)SC
WhereS.SNO=SC.SNO 4.列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号
SelectS.SNO,S.SNAME
FROMS,
(SelectSC1.SNOFROMSCSC1,CC1,SCSC2,CC2
WhereSC1.CNO=C1.CNOANDC1.NAME='1'
ANDSC2.CNO=C2.CNOANDC2.NAME='2'
ANDSC1.SCGRADE>SC2.SCGRADE ) SC
WhereS.SNO=SC.SNO 5.列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩
长按二维码向我转账
受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。
阅读
好看
已推荐到看一看
你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
取消
分享想法到看一看
确定
最多200字,当前共字
微信扫一扫
关注该公众号