一. 实验目的
- 掌握视图的创建、修改和删除。
- 掌握使用视图来访问数据。
二. 实验内容
- 创建视图,使用视图访问数据。
- 通过创建的视图更新数据。
- 通过创建的视图查询数据。
- 修改、删除所创建的视图。
三.实验步骤
根据实验一创建的数据库及基本表,在实验二、三的基础上,运用SQL语句实现以下要求:
1.创建学生基本情况视图SubS(包括学号、姓名、出生日期)。
create view Subs(s_no,s_name,s_birthday)
as select s_no,s_name,s_birthday
from Student
group by s_no,s_name,s_birthday
2.创建学生选课情况视图S_SC_C(包括学号、姓名、选课名称及成绩)。
create view s_sc_c(s_no,s_name,course_name,score)
as select Student.s_no,s_name,course_no,score
from Student,Choice
where Student.s_no=Choice.s_no
3.创建学生平均成绩视图S_Avg(包括学号、平均成绩)。
create view S_Avg(s_no,Avg)
as select Student.s_no,AVG(score)
from Student,Choice
where Student.s_no=Choice.s_no
group by Student.s_no
4.创建班级情况视图,包括班号、班级名称、班级人数。
create view C_Class(class_no,class_name,count)
as select Class.class_no,class_name,COUNT(*)
from Class
group by class_no,class_name
5.创建教师授课情况视图,包括教师号、教师姓名、授课名称。
create view T_Teaching(t_no,t_name,course_name)
as select Teaching.t_no,Teacher.t_name,Course.course_name
from Teaching,Teacher,Course
where Teaching.t_no=Teacher.t_no and Teaching.course_no=Course.course_no
6.运用视图“S_SC_C”,查询姓名为“张彬”的同学的选课名称及成绩。
select course_no,score
from s_sc_c
where s_name='张彬'
7.运用视图“S_Avg”,查询学号为“991102”的同学的平均成绩。
select AVG
from S_Avg
where s_no='991102'
8.删除视图“S_Avg”。
drop view S_Avg
四.根据上课讲的例题,自己给出5个查询语句,包括实验内容中要求的知识点。
注意:每个均要写出查询要求和相应的SQL语句。
1.运用视图“s_sc_c”,查询姓名为“张彬”的同学的学号及所选课程号
select s_no,course_no
from s_sc_c
where s_name='张彬'
2.运用视图“T_Teaching”,查询姓名为“王大山”的老师的教师号及教授的课程号
select t_no,course_name
from T_Teaching
where t_name='王大山'
3.运用视图“s_sc_c”,查询姓名为“藩桃芝”的同学的学号及所选课程号
select s_no,course_no
from s_sc_c
where s_name='藩桃芝'
4.运用视图“C_Class”,查询班号为“js9901”的班级的总人数
select count
from C_Class
where class_no='js9901'
5.删除视图Subs
drop view Subs