问题描述:
为管理岗位业务培训信息,建立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 = 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 )
为管理岗位业务培训信息,建立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 = 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 )