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'