数据库实验五 视图的创建与使用.docx

上传人:b****5 文档编号:7506597 上传时间:2023-01-24 格式:DOCX 页数:15 大小:352.56KB
下载 相关 举报
数据库实验五 视图的创建与使用.docx_第1页
第1页 / 共15页
数据库实验五 视图的创建与使用.docx_第2页
第2页 / 共15页
数据库实验五 视图的创建与使用.docx_第3页
第3页 / 共15页
数据库实验五 视图的创建与使用.docx_第4页
第4页 / 共15页
数据库实验五 视图的创建与使用.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数据库实验五 视图的创建与使用.docx

《数据库实验五 视图的创建与使用.docx》由会员分享,可在线阅读,更多相关《数据库实验五 视图的创建与使用.docx(15页珍藏版)》请在冰豆网上搜索。

数据库实验五 视图的创建与使用.docx

数据库实验五视图的创建与使用

实验五视图的创建与使用

一、实验目的

(1)理解视图的概念。

(2)掌握创建视图、测试、加密视图的方法。

(3)掌握更改视图的方法。

(4)掌握用视图管理数据的方法。

二、实验内容

1.创建视图

(1)创建一个名为stuview2的水平视图,从数据库Student_info的Student表中查询出性别为“男”的所有学生的资料。

并在创建视图时使用withcheckoption。

(注:

该子句用于强制视图上执行的所有修改语句必须符合由Select语句where中的条件。

createviewstuview2

as

selectSno,Sname,Sex,Birth,Classno,Entrance_date,Homeaddr,Sdept,Postcode

fromStudent_20103322

whereSex='男'

withcheckoption

(2)创建一个名为stuview3的投影视图,从数据库Student_info的Course表中查询学分大于3的所有课程的课程号、课程名、总学时,并在创建时对该视图加密。

(提示:

用withENCRYPTION关键子句)

createviewstuview3

withENCRYPTION

as

selectCno,Cname,Total_perior

fromCourse_20103322

whereCredit>3

withcheckoption

(3)创建一个名为stuview4的视图,能检索出“051”班所有女生的学号、课程号及相应的成绩。

createviewstuview4

as

selectStudent_20103322.Sno,Cno,Grade

fromStudent_20103322,SC_20103322

whereStudent_20103322.Sno=SC_20103322.Sno

andClassno='051'

andSex='女'

(4)创建一个名为stuview5的视图,能检索出每位选课学生的学号、姓名、总成绩。

createviewstuview5(Sno,Sname,SumGrade)

as

selectSC_20103322.Sno,Sname,SUM(Grade)

fromSC_20103322,Student_20103322

whereSC_20103322.Sno=Student_20103322.Sno

groupbySC_20103322.Sno,Sname

2.查询视图的创建信息及视图中的数据

(1)查看视图stuview2的创建信息。

a.通过系统存储过程sp_help查看

execsp_helpstuview2

b.通过查询表sysobjects

select*

fromsysobjects

wherename='stuview2'

(2)通过查看视图的定义脚本。

a.通过系统存储过程sp_helptext

execsp_helptextstuview2

b.通过查询表sysobjects和表syscomments

(提示:

视图的名称保存在表sysobjects的name列,定义脚本保存在表syscomments的text列)

selecttext

fromsysobjects,syscomments

wherename='stuview2'

andsysobjects.id=syscomments.id

3)查看加密视图stuview3的定义脚本。

execsp_helptextstuview3

3.修改视图的定义

(1)修改视图stuview3使其从数据库Student_info的Student表中查询总学时大于60的所有课程的课程号、课程名、学分。

(提示:

若视图原具有加密保护,修改视图时若未加withencryption子句,则修改后的视图不再加密。

alterviewstuview3

withENCRYPTION

as

selectCno,Cname,Credit

fromCourse_20103322

whereTotal_perior>60

4.视图的更名与删除

1)用系统存储过程sp_rename将视图stuview4更名为stuv4。

sp_renamestuview4,stuv4

2)将视图stuv4删除。

dropviewstuv4

5.管理视图中的数据

1)从视图stuview2查询出班级为“051”、姓名为“张虹”的资料。

select*

fromstuview2

whereClassno='051'andSname='张虹'

2)向视图stuview2中插入一行数据,内容为:

学号姓名班级性别家庭住址入学时间出生年月

20110005赵小林054男南京2011/09/011993/01/09

insert

intostuview2(Sno,Sname,Classno,Sex,Homeaddr,Entrance_date,Birth,Sdept,Postcode)

values('20110005','赵小林','054','男','南京','2011-09-01','1993-01-09','计算机系','211506')

3)查询student,查看表中的内容有何变化。

select*

fromStudent_20103322

4)向视图stuview2中插入一行数据,内容为:

学号姓名班级性别家庭住址入学时间出生年月

20110006赵静054女南京2011/09/011993/11/09

能成功插入吗?

原因何在?

insert

intostuview2(Sno,Sname,Classno,Sex,Homeaddr,Entrance_date,Birth,Sdept,Postcode)

values('20110006','赵静','054','女','南京','2011-09-01','1993-11-09','计算机系','211506')

不能插入。

因为stuview2的水平视图,是Student_20103322_info数据库的Student_20103322表中查询出的所有性别为“男”的学生资料,插入的新数据性别为“女”,所以不能执行。

5)修改视图stuview2中的数据。

a.将stuview2中054班、姓名为“赵小林”同学的家庭地址改为“扬州市”。

updatestuview2

setHomeaddr='扬州市'

whereClassno='054'andSname='赵小林'

b.查询student,查看表中的内容有何变化

select*

fromStudent_20103322

6)从视图stuview2中将班级为054、姓名为“赵小林”同学删除。

delete

fromstuview2

whereSname='赵小林'

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1