数据库视图的定义及使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库视图的定义及使用
实验目的:
掌握视图的用法,加深对视图作用的理解。
实验内容:
1、创建、修改和删除视图。
2、利用视图进行查询。
实验步骤:
说明:对视图的创建、修改和删除均可在可视化界面下操作。
在SQL Server企业管理器中,依次选择数据库――XSGL――视图――鼠标右击――新建视图。然后通过单击按钮或右击鼠标第一格的空白区域,选择弹出菜单中的“添加表”。然后拖拽主键到外键,建立关联,点击字段左边的方框选择输出字段。
仅以命令方式来操作:
一、视图的创建:
1.创建信息系学生信息的视图:
create view IS_Student as select sno, sname, sage from student where sdept='IS'
2. 创建信息系选修了1号课程的学生的视图:
create view IS_S1 as select student.sno, cno, grade from student, sc where student.sno=sc.sno and sdept='IS' and cno='1'
3. 建立信息系选修了1号课程且成绩在90分以上的学生的视图:
create view as IS_S2 as
select * from IS_S1 where grade>=90
4. 创建一个反映学生出生年份的视图:
create view BT_S(sno, sname, 出生年份) as
select sno, sname, year(date())- sage from student
5. 将所有女生的记录定义为一个视图:
create view F_student as select * from student where ssex='女'
6. 将所有学生的学号和他的平均成绩定义为一个视图:
create view S_G(sno, avg_grade) as select sno,avg(grade) from scgroup by sno
二、视图结构的修改:
6. 将视图F_student修改为信息系的所有女士的视图
SQL Server中: alter view F_student as select * from student where ssex='女' and sdept='IS'
说明: 视图结构的修改的AS 后的Select语句与创建视图的完全一致, 引入结构修改的目的是为了避免与视图相关的数据库对象的变换, 如触发器, 关联等
三、查询视图
7. 在信息系的学生视图中查询年龄小于20岁的学生:
select * from IS_Student where sage<20
8. 查询信息系选修了1号课程的学生:
select sc.sno, sname from IS_Student, sc
where IS_Student.sno=sc.sno and cno= '1'
9. 在视图S_G中查询平均成绩在90分以上的学生的学号和平均成绩:
Select * from S_G where avg_grade >=90
四、更新视图:
10.将信息系学生视图IS_Student中学号为”95002”的学生姓名改为”刘辰”:
update IS_Student set sname='刘辰' where sno='95002'比较: update
IS_Student set sname=’刘辰’ wheresno=’95003’ 此语句不能实现数据的更新.
11. 向信息系学生视图IS_Student中插入一个新的学生记录, 学号为95029,姓名为”赵新”, 年龄为20岁:
insert into IS_Student values('95029', '赵新',20)
12. 删除信息系学生视图IS_Student中学号为95004的学生的记录:
delete from IS_Student where sno='95029'
五、删除视图:
13. 删除视图IS_S1:
drop view IS_S1
思考:
1. 创建所有学生的基本信息和选课信息的视图
2. 基于上述视图查询各系学生各门功课的平均成绩.