资源描述:
《SQLServer面试题及答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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嵌套语句查询选修课程编号为’
2、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(15 Select[S#]FROM
3、SC RIGHTJOIN CONSC.[C#]=C.[C#]GROUPBY[S#] HAVINGCOUNT(*)=COUNT([S#])) 5.查询选修了课程的学员人数 --实现代码: Select学员人数=COUNT(DISTINCT[S#])FROMSC 6.查询选修课程超过5门的学员学号和所属单位 --实现代码: SelectSN,SDFROMS Where[S#]IN( Select[S#]FROMSC GROUPBY[S#] HAVINGCOUNT(DISTINCT[C#])>5)题目2 问题描述: 已知关系模式: S(SNO,SNAME)学
4、生关系。SNO为学号,SNAME为姓名 C(CNO,CNAME,CTEACHER)课程关系。CNO为课程号,CNAME为课程名,CTEACHER为任课教师 SC(SNO,CNO,SCGRADE)选课关系。SCGRADE为成绩 1.找出没有选修过“李明”老师讲授课程的所有学生姓名 --实现代码: SelectSNAMEFROMS15 WhereNOTEXISTS( Select*FROMSC,C WhereSC.CNO=C.CNO ANDCNAME='李明' ANDSC.SNO=S.SNO) 2.列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩 --实现
5、代码: SelectS.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE) FROMS,SC,( SelectSNO FROMSC WhereSCGRADE<60 GROUPBYSNO HAVINGCOUNT(DISTINCTCNO)>=2 )AWhereS.SNO=A.SNOANDSC.SNO=A.SNO GROUPBYS.SNO,S.SNAME 3.列出既学过“1”号课程,又学过“2”号课程的所有学生姓名 --实现代码: SelectS.SNO,S.SNAME FROMS,( SelectSC.SNO FROMSC,C
6、WhereSC.CNO=C.CNO ANDC.CNAMEIN('1','2')15 GROUPBYSNO HAVINGCOUNT(DISTINCTCNO)=2 )SCWhereS.SNO=SC.SNO 4.列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号 --实现代码: SelectS.SNO,S.SNAME FROMS,( SelectSC1.SNO FROMSCSC1,CC1,SCSC2,CC2 WhereSC1.CNO=C1.CNOANDC1.NAME='1' ANDSC2.CNO=C2.CNOANDC2.NAME='2' ANDSC1.S
7、CGRADE>SC2.SCGRADE )SCWhereS.SNO=SC.SNO 5.列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩 --实现代码: SelectS.SNO,S.SNAME,SC.[1号课成绩],SC.[2号课成绩] FROMS,( SelectSC1.SNO,[1号课成绩]=SC1.SCGRADE,[2号课成绩]=SC2.SCGRADE FROMSCSC1,CC1,SCSC2,CC2