-
问题描述
:
为管理
岗位业务培训信息,建立
3
个表
:
S (S#,SN,SD,SA) S#,SN,SD,SA
分
别代表学号、学员姓名、所属单位、学员年龄
C
(C#,CN ) C#,CN
分别代表课程编号、课程名称
SC ( S#,C#,G )
S#,C#,G
分别代表学号、所选修的课程编号、学习成绩
1.
使用标准
SQL
< br>嵌套语句查询选修课程名称为
?
税收基础
?
的学员学号和姓名
Select SN,SD FROM S
Where
[S#]
IN( Select [S#] FROM C,SC
Where C.[C#]=SC.[C#]
AND
CN=N'
税收基础
')
2.
使用标准
SQL
嵌套语句查询选修课程编号为
?C2?
的学员姓名和所属单位
Select SN,SD FROM S
Where
[S#]IN (
Select [S#] FROM SC
Where [C#]='C2')
3.
使用标准
SQL
嵌套语句查询不选修课程编号为
?C5?
的学员姓名和所属单位
Select SN,SD FROM S
Where
[S#] NOT IN(
Select [S#] FROM SC
Where [C#]='C5')
1
/
9
p>
4.
使用标准
SQL
嵌套语句查询选修全部课程的学员姓名和所属单位
Select SN,SD FROM S
Where
[S#] IN(
Select [S#] From SC
GROUP BY [S#]
HAVING Count
(Distinct C#)
5.
查询选修了课程的学员人数
p>
Select
学员人数
=COUNT(DI
STINCT [S#]) FROM SC
6.
查询选修课
程超过
5
门的学员学号和所属单位
Select SN,SD FROM S
Where
[S#] IN(
Select [S#] FROM SC
GROUP BY [S#]
HAVING
COUNT(DISTINCT [C#])>5)
题目
2
问题描述
:
已知关系模式
:
S (SNO,SN
AME)
学生关系。
SNO
为学号,<
/p>
SNAME
为姓名
C (CNO,CNAME,CTEACHER)
课程关系。<
/p>
CNO
为课程号,
CNAME
为课程名,
CTEACHER
为任课教师
SC(SNO,CNO,SCGRADE)
选课关系。
< br>SCGRADE
为成绩
1.<
/p>
找出没有选修过
“
李明
< br>”
老师讲授课程的所有学生姓名
2
/
9
Select SNAME FROM S
Where
NOT EXISTS(
Select * FROM SC,C
Where =
AND
CNAME='
李明
'
AND =)
2.
列出有二门以上
(
含两门
)
不及格课程的学生姓名及其平均成绩
Select ,,AVG_SCGRADE=AVG(E)
FROM S,SC,(
Select SNO
FROM SC
Where SCGRADE<60
GROUP BY SNO
HAVING
COUNT(DISTINCT CNO)>=2
)A Where = AND =
GROUP BY ,
3.
列出既学
过
“1”
号课程,又学过
“2”
号课程的所有学生姓名
Select ,
FROM S,(
Select
FROM SC,C
3
/
9
Where =
AND IN('1','2')
GROUP BY SNO
HAVING
COUNT(DISTINCT CNO)=2
)SC Where =
4.
列出
“1”
号课成绩
比
“2”
号同学该门课成绩高的所有学生的学号
Select ,
FROM S,(
Select
FROM SC SC1,C C1,SC
SC2,C C2
Where = AND ='1'
AND = AND ='2'
AND E>E
)SC Where =
5.
列出<
/p>
“1”
号课成绩比
“2”
号课成绩高的所有学生的学号及其
“1”
号课和
“2”
号
课的成绩
S
elect ,,SC.[1
号课成绩
],SC.[2
号课成绩
]
FROM S,(
Select ,[1
号课成绩
]=E
,[2
号课成绩
]=E
FROM
SC SC1,C C1,SC SC2,C C2
Where = AND
='1'
AND = AND ='2'
AND E>E
4
/
9