使用SQL语句创建、查看、修改和删除视图。
(1)建立所有学生选课视图,要求包括学生学号、姓名、课程号、课程名、成绩;
在视图中查询“刘晨”的所有信息;
CREATE VIEW 所有学生选课视图
AS SELECT 学生.学号,学生.姓名,学习.课程号,课程.课程名,学习.成绩
FROM 学生,学习,课程
WHERE 学生.学号=学习. 学号
AND 学习.课程号=课程.课程号;
SELECT *
FROM 所有学生选课视图
WHERE 姓名=“刘晨”;
(2)创建视图,包括每个同学所有课程的总分、平均分以及姓名;
以上面视图为基础,查询学号“S1”同学的总分和平均分;
CREATE VIEW 学生课程视图
AS SELECT 学生.姓名,SUM(总分),AVG( 平均分)
FROM 课程,学生
WHERE 学生.学号=课程.学号
GROUP BY 课程号;
SELECT 姓名,SUM(总分),AVG( 平均分)
FROM 学生课程视图
WHERE 学号=“S1”;
(3)创建选修了“数学”课程的学生的视图,给出学生的姓名、学号以及成绩;
以上面视图为基础,查询“CS”系学生的数学课程成绩及其姓名;
CREATE VIEW 选修了“数学”课程的学生的视图
AS SELECT 学生.学号,学生.姓名,学习.成绩
FROM 学生,学习,课程
WHERE 学生.学号=学习. 学号
AND 学习.课程号=课程.课程号
AND 课程.课程名=“数学”;
SELECT 成绩,姓名
FROM 选修了“数学”课程的学生的视图
WHERE 学院=“CS”;
(4)创建视图,查询选修了三门以上课程的同学名单及对应课程的成绩;
统计选修了三门课以上同学人数;
CREATE VIEW 选修了三门以上课程的学生的视图
AS SELECT 学生.姓名,COUNT(课程号) AS 选课数,学习.成绩
FROM 学生,学习,课程
WHERE 课程.课程号=学习.课程号
AND 学生.学号=学习.学号
HAVING COUNT(课程号)>=3;
(5)删除第(4)题建立的视图;
DROP VIEW 选修了三门以上课程的学生的视图