为管理岗位业务培训信息,建立3个表:
S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄
C (C#,CN ) C#,CN 分别代表课程编号、课程名称
SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩
要求实现如下5个处理:
1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
5. 查询选修了课程的学员人数
6. 查询选修课程超过5门的学员学号和所属单位
第1题:
15、已知S#:学号,SN:姓名,SD:班级,CN:课程,G:成绩。下列属于2NF的关系模式是_________。
A.R(S#,SN,SD,CN,G)
B.R(S#,SN,SD)
C.R(S#,CN,SD,G)
D.R(S#,CN,SD)
第2题:
基于这样的三个表,即学生表 S、课程表 C 和学生选课表 SC,它们的结构 如下: S(S#,SN,SEX,AGE,DEPT) C(C#,CN) SC(S#,C#,GRADE) 其中,S#为学号,SN 为姓名,SEX 为性别,AGE 为年龄,DEPT 为系别,C#为课程 号,CN 为课程名,GRADE 为成绩。 检索学生姓名及其所选修课程的课程号和成绩。正确的 SELECT 语句是()。
A.SELECT S.SN,SC.C#,SC.GRADE FROM S WHERE S.S#=SC.S#
B.SELECT S.SN,SC.C#,SC.GRADE FROM SC WHERE S.S#=SC.GRADE
C.SELECT S.SN,SC.C#,SC.GRADE FROM S,SC WHERE S.S#=SC.S#
D.SELECT S.SN,SC.C#,SC.GRADE FROM S.SC
第3题:
有三个表,即学生表 S、课程表 C 和学生选课表 SC,它们的结构 如下: S(S#,SN,SEX,AGE,DEPT) C(C#,CN) SC(S#,C#,GRADE) 其中,S#为学号,SN 为姓名,SEX 为性别,AGE 为年龄,DEPT 为系别,C#为课程 号,CN 为课程名,GRADE 为成绩。 检索学生姓名及其所选修课程的课程号和成绩。正确的 SELECT 语句是()。
A.SELECT S.SN,SC.C#,SC.GRADE FROM S WHERE S.S#=SC.S#
B.SELECT S.SN,SC.C#,SC.GRADE FROM SC WHERE S.S#=SC.GRADE
C.SELECT S.SN,SC.C#,SC.GRADE FROM S,SC WHERE S.S#=SC.S#
D.SELECT S.SN,SC.C#,SC.GRADE FROM S.SC
第4题:
7、定义学生选修课程的关系模式如下:SC(S#,Sn,C#,Cn,G,Cr)(其属性分别为学号、姓名、课程号、课程名、成绩、学分)该关系可进—步归范化为()
A.s(S#,Sn),C(C#,Cn,Cr),SC(S#,C#,G)
B.s(S#,Sn,C#,Cn,Cr),SC(S#,C#,G)
C.C(C#,Cn,Cr),SC(S#,Sn,C#,G)
D.S(S#,Sn),C(C#,Cn),SC(S#,C#,Cr,G)
第5题:
学生和课程的关系模式定义为S(S,Sn,Sd,Dc,Sa)(其属性分别为学号、姓名、所在系、所在系的系主任、年龄);C(C,Cn,P)(其属性分别为课程号、课程名、先选课);SC(S,C,G)(其属性分别学号、课程号和成绩)。关系中包含对主属性传递依赖的是
A.S→Sd,Sd→Dc
B.S→Sd
C.S→Sd,(S,C)→G
D.C→P,(S,C)→G
第6题:
定义学生选修课程的关系模式为SC(S,Sn,Sd,Sa,C,G)(其属性分别为学号、姓名、所在系、年龄、课程号和成绩);C(C,Cn,P)(其属性分别为课程号、课程名、先选课)。关系模式SC的主键是
A.Sn,C
B.S,C
C.S
D.C
第7题:
定义学生、教师和课程的关系模式S(S,Sn,Sd,Sc,Sa)(其属性分别为学号、姓名、所在系、所在系的系主任、年龄);C(C ,Cn,P)(其属性分别为课程号、课程名、先修课);SC(S,C,G)(其属性分别为学号、课程号和成绩)。包含对非主属性部分依赖的关系
A.其他三项都不对
B.C(C ,Cn,P)
C.SC(S,C,G)
D.S(S,Sn,Sd,Sc,Sa)
第8题:
【题目描述】
2.为管理岗位业务培训信息,建立3个表:
S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄
C (C#,CN ) C#,CN 分别代表课程编号、课程名称
SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩
要求实现如下5个处理:
1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
5. 查询选修了课程的学员人数
6. 查询选修课程超过5门的学员学号和所属单位
【参考答案分析】:
1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
SELECT SN,SD FROM S
WHERE [S#] IN(
SELECT [S#] FROM C,SC
WHERE C.[C#]=SC.[C#]
AND CN='税收基础')
2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
SELECT S.SN,S.SD FROM S,SC
WHERE S.[S#]=SC.[S#]
AND SC.[C#]='C2'
3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
SELECT SN,SD FROM S
WHERE [S#] NOT IN(
SELECT [S#] FROM SC
WHERE [C#]='C5')
4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
SELECT SN,SD FROM S
WHERE S# IN(SELECT S# FROM SC GROUP BY S# HAVING COUNT(*)=
(SELECT COUNT(*) FROM C))
5. 查询选修了课程的学员人数
SELECT 学员人数=COUNT(DISTINCT [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)
1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
--实现代码:
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 S.SN,S.SD FROM S,SC
WHERE S.[S#]=SC.[S#]
AND SC.[C#]='C2';
3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
--实现代码:
SELECT SN,SD FROM S
WHERE [S#] NOT IN(
SELECT [S#] FROM SC
WHERE [C#]='C5');
4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
--实现代码:
SELECT SN,SD FROM S
WHERE [S#] IN(
SELECT [S#] FROM SC
RIGHT JOIN C ON SC.[C#]=C.[C#]
GROUP BY [S#]
HAVING COUNT(*)=COUNT(DISTINCT [S#]));
5. 查询选修了课程的学员人数
--实现代码:
SELECT 学员人数=COUNT(DISTINCT [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);
第9题:
已知学生表S、学生选课表SC,结构如下: S(S#,SN,SD,PROV) SC(S#,CN,GR) 其中S#为学号,SN为姓名,SD为系别,PROV为省区,CN为课程名,GR为成绩 请写出完成以下任务需要的SQL语句:1)查询'信息系'的学生来自哪些省区。2)按分数降序排序,输出'英语系'学生中选修了'计算机'课程的学生的姓名和成绩。