数据库实验5:视图的定义及使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5:视图的定义及使用
【目的要求】
熟练掌握在SQL Server2005中用T-SQL语句定义视图的用法,加深对视图作用的理解。
【实验内容】
1、视图的创建:
◆ 创建信息系学生信息的视图(student1);
create view student1
as
select sno,sname,sage from student
where sdept='is';
◆ 创建信息系选修了1号课程的学生的视图;
create view is_s1(sno,sname,grade)
as
select student.sno,sname,grade from student,sc
where sdept='is'and student.sno=sc.sno and o='1';
◆ 建立信息系选修了1号课程且成绩在90分以上的学生的视图;
create view is_s2
as
select sno,sname,grade from is_s1
where grade>=90;
◆ 创建一个反映学生出生年份的视图
create view bt_s(sno,sname,sbirth)
as
select sno,sname,year(getdate())-sage from student;
◆ 将所有女生的记录定义为一个视图;
create view f_student(f_sno,name,sex,age,dept)
as
select*from student
where ssex='女';
◆ 将所有学生的学号和他的平均成绩定义为一个视图S_G。create view s_g(sno,gavg)
as
select sno,avg(grade)from sc
group by sno;
2、视图结构的修改:
◆ 将视图student1修改为信息系的所有女生的视图;alter view studen1(sno,sname,sage)
as select sno,sname,sage
from student where ssex='女'and sdept='is';
3、查询视图
◆ 在信息系的学生视图中查询年龄小于20岁的学生: select sno,sage from student1
where sage<20;
◆ 查询信息系选修了1号课程的学生:
select student1.sno,sname from student1,sc
where student1.sno=sc.sno and o='1';
◆ 在视图S_G中查询平均成绩在90分以上的学生的学号和平均成绩: select*from s_g
where gavg>=90;
4、更新视图:
◆ 将信息系学生视图IS_Student中学号为“95002”学生姓名改为”刘辰”;update student1
set sname='刘辰'
where sno='95002';
◆ 向信息系学生视图IS_Student中插入一个新的学生记录, 学号为95029,姓
名为”赵新”, 年龄为20岁;
insert
into student
values('200215129','赵新','男',20,'is');
◆ 删除信息系学生视图IS_Student中学号为95004的学生的记录。
delete
from student
where sno='200215129'and sdept='is';
5、删除视图
删除视图IS_S。