设计和管理视图

 1 1.在学生选课数据库studentcourse中新建一名为stud_view的视图,
 2 该视图可以让我们看到每个学生的姓名,选修的课程名和成绩。
 3 create view stu_view
 4 as 
 5 select s.姓名,c.课程名,SC.成绩 from s,c,SC where s.学号=SC.学号 and SC.课程号=c.课程号
 6 select * from stu_view
 7 2利用stud_view1视图,查看平均成绩在80分以上的学生姓名。
 8 select 姓名,avg(成绩)from stu_view group by 姓名 having avg(成绩)>=80
 9 
10 
11 3.在学生选课数据库studentcourse中新建一名为teacher_view的视图
12 ,该视图显示每个教师所教的课程名和选修该课程的学生人数。
13 create view teacher_view
14 as select c.课程名,c.教师,COUNT(SC.学号)as 人数
15 from c inner join SC on c.课程号=SC.课程号 inner join
16 s on SC.学号=s.学号 group by c.课程名,c.教师
17 
18 4.修改teacher_view视图,在视图中增加一列,
19 显示选修该课程的所有学生的平均成绩.
20 alter view teacher_view 
21 as select c.课程名,c.教师,COUNT(SC.学号)as 人数,AVG(SC.成绩) as 平均成绩
22 from c inner join SC on c.课程号=SC.课程号 inner join s on SC.学号=s.学号
23 group by c.课程名,c.教师
24 
25 5.在学生选课数据库smdentcourse中创建一个名为depart_view的视图
26 ,该视图可以用来查看每个系的学生人数。
27 create view depart_view(人数,系)
28 as select count(s.学号),s.系 from s group by s.系 
29 
30 
31 6.在学生选课数据库studentcourse中创建一个名为stud_view2的视图,
32 该视图可以用来查看每个学生选修课程的门数和平均成绩。
33 create view stud_view2
34 as 
35 select COUNT(SC.课程号)as 选修数,AVG(SC.成绩)as 平均成绩,s.学号 from
36 c,sc,s where c.课程号=SC.课程号 and  SC.学号=s.学号 
37 group by s.学号
38 
39 
40 7.利用题6中建好的视图stud_view2,查询平均成绩在80分以上的学生
41 学号。
42 
43 select 学号 from stud_view2 where 平均成绩>=80
44 
45 8.修改题6中创建的视图stud_view2,该视图可以
46 用来查看每个学生选修课程的门数、平均成绩和所在系.
47 alter view stud_view2 as 
48 select s.学号,s.姓名,s.性别,s.系,AVG(SC.成绩)as 平均成绩,COUNT(c.课程号)as 
49 选修门数 from c,SC,s where c.课程号=SC.课程号 and SC.学号=s.学号
50 group by s.学号,s.姓名,s.性别,s.系
51 
52 
53 
54 9.能否利用题6中创建的stud_view2视图,修改某个学生
55 的平均成绩?
56 update stud_view2 set stud_view2.平均成绩=99 where stud_view2.学号='J0401'
View Code
原文地址:https://www.cnblogs.com/kuugachen/p/3394654.html