现有关系数据库如下:
课程表 ( 课程号,课程名称,学分,时数 )
学习表 ( 学号,课程号,成绩 )
学生表 ( 学号,姓名,性别,年龄、专业、总分、奖学金 )
请求解决以下问题:
(1)查询没有获得奖学金、同时至少有一门课程成绩在 85 分以上的学生信息,包括学号、姓名和专业;
(2)查询没有任何一门课程成绩在 70 分以下的所有学生的信息,包括学号、姓名和专业;
(3)对成绩得过满分的学生,如果没有获得奖学金的,将其奖学金设为 500元;
(4) 定义学生成绩得过满分的课程视图 AAA ,包括课程号、名称和学分;
课程表 ( 课程号,课程名称,学分,时数 )
学习表 ( 学号,课程号,成绩 )
学生表 ( 学号,姓名,性别,年龄、专业、总分、奖学金 )
请求解决以下问题:
(1)查询没有获得奖学金、同时至少有一门课程成绩在 85 分以上的学生信息,包括学号、姓名和专业;
(2)查询没有任何一门课程成绩在 70 分以下的所有学生的信息,包括学号、姓名和专业;
(3)对成绩得过满分的学生,如果没有获得奖学金的,将其奖学金设为 500元;
(4) 定义学生成绩得过满分的课程视图 AAA ,包括课程号、名称和学分;
SELECT A.学号, A.姓名, A.专业
FROM 学生表 A
WHERE ISNULL(奖学金, 0) = 0
AND EXISTS(SELECT TOP 1 1 FROM 学习表 WHERE 学号 = A.学号 AND 成绩 >= 85)
--#2
SELECT A.学号, A.姓名, A.专业
FROM 学生表 A
WHERE NOT EXISTS(SELECT TOP 1 1 FROM 学习表 WHERE 学号 = A.学号 AND 成绩 < 70)
--#3
UPDATE 学生表
SET 奖学金 = 500
WHERE ISNULL(奖学金, 0) = 0
AND EXISTS(SELECT TOP 1 1 FROM 学习表 WHERE 学号 = A.学号 AND 成绩 = 100)
--#4
CREATE VIEW AAA AS
SELECT A.课程号, B.课程名称, B.学分
FROM 学习表 A
INNER JOIN
(SELECT DISTINCT 课程号 FROM 学习表 WHERE 成绩 = 100) B
ON A.课程号 = B.课程号
select 学号,姓名,专业 from 学生表 where (奖学金 = 0 or 奖学金 is null) and 学号 in (distinct 学号 from 学习表 where 成绩 >= 85)--(2)查询没有任何一门课程成绩在 70 分以下的所有学生的信息,包括学号、姓名和专业;
select 学号,姓名,专业 from 学生表 where 学号 not in (distinct 学号 from 学习表 where 成绩 < 70)--(3)对成绩得过满分的学生,如果没有获得奖学金的,将其奖学金设为 500元;
update 学生表
set 奖学金 = 500
where (奖学金 = 0 or 奖学金 is null) and 学号 in (distinct 学号 from 学习表 where 成绩 = 100)--(4) 定义学生成绩得过满分的课程视图 AAA ,包括课程号、名称和学分;
create view AAA
as
select m.课程号 , n.课程名称 , n.学分
from 学习表 m , 课程表 n
where m.成绩 = 100 and m.课程号 = n.课程号