数据库视图实验.docx

上传人:b****7 文档编号:10413020 上传时间:2023-02-11 格式:DOCX 页数:11 大小:172.66KB
下载 相关 举报
数据库视图实验.docx_第1页
第1页 / 共11页
数据库视图实验.docx_第2页
第2页 / 共11页
数据库视图实验.docx_第3页
第3页 / 共11页
数据库视图实验.docx_第4页
第4页 / 共11页
数据库视图实验.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数据库视图实验.docx

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

数据库视图实验.docx

数据库视图实验

甘肃政法学院

本科生实验报告

(五)

姓名:

***

学院:

信息工程学院

专业:

信息管理与信息系统

班级:

***

实验课程名称:

数据库原理

实验日期:

2014年5月29日

指导教师及职称:

**老师

实验成绩:

开课时间:

2013-2014学年第二学期

 

甘肃政法学院实验管理中心印制

 

实验题目

视图

小组合作

姓名

***

班级

****

学号

********

一、实验目的

1、掌握SELECT语句的语法

2、掌握基于单表的查询方法

3、掌握基于多表的查询方法

4、掌握相关与不相关的嵌套查询

5、掌握使用UNION的集合查询

二.实验环境

Windows7

SQLServer2005

实验室单人单机

三、实验内容与步骤

1.以最便捷的方式在EDUC数据库中新建3张表,各表的结构如下所示:

STUDENT的结构

列名

数据类型

宽度

空否

备注

sno

char

8

N

主码

sname

char

8

N

ssex

char

2

Y

默认值为“男”

取值“男”或“女”

sage

int

Y

sdept

char

10

Y

COURSE的结构

列名

数据类型

宽度

空否

备注

cno

char

2

N

主码

cname

char

30

Y

credit

int

Y

cpno

char

3

Y

SC的结构

列名

数据类型

宽度

空否

备注

sno

char

8

N

外码

合为主码

cno

char

2

N

外码

grade

int

Y

取值在0—100之间

2.利用企业管理器向表中插入记录

STUDENT的内容

COURSE的内容

SC的内容

3、实验内容

项目一:

创建视图

(一)创建视图

1.使用企业管理器创建视图

在EDUC库中以student表为基础,建立一个名为“V_计算机系学生”的视图。

在使用该视图时,将显示student表中的所有字段。

2.使用SQL语句创建视图

①在查询分析器中建立一个每个学生的学号、姓名、选修的课名及成绩的视图S_C_GRADE;

②建立一个所有计算机系学生的学号以及平均成绩的视图COMPUTE_AVG_GRAD。

(二)修改视图

1.使用企业管理器修改视图

在企业管理器中将视图COMPUTE_AVG_GRAD改成数学系的学生学号以及平均成绩的视图。

2.使用SQL语句修改视图

①在查询分析器中使用更改视图的命令将上面建立的视图“V_计算机系学生”更名为“V_计算机系男生”。

(三)删除视图

1.使用企业管理器删除视图

用企业管理器删除视图“V_计算机系男生”。

2.使用SQL语句删除视图

用SQL语句删除视图COMPUTE_AVG_GRAD。

项目二:

使用视图

(一)定义视图

1.定义计算机系学生基本情况视图v_computer;

2.将student,course,sc表中学生的学号、姓名、课程号、课程名、成绩定义为视图V_S_C_G;

3.将各系学生人数,平均年龄定义为视图v_num_avg;

4.定义一个反映学生出生年份的视图v_year;

5.将各位学生选修课程的门数及平均成绩定义为视图v_avg_s_g;

6.将各门课程的选修人数及平均成绩定义为视图v_avg_c_g。

(二)使用视图

1.查询平均成绩为90分以上的学生学号、姓名和成绩;

2.查询各课成绩均大于平均成绩的学生学号、姓名、课程号和成绩;

(三)修改视图

1.通过视图v_computer,分别将学号为“95001”和“95005”的学生姓名更改为“s1”和“s5”,并查询结果;

2.通过视图v_computer,新增加一个学生记录(’s12’,’yanxi’,19,’is’),并查询结果;

3.通过视图v_computer,新增加一个学生记录(’s13’,’yanxi’,19,’cs’),并查询结果;

4.通过视图v_computer,删除学号为“s13”的学生信息,并查询结果;

5.要通过视图V_S_C_G,将学号为“95005”的姓名改为“s12”,是否可以实现?

并说明原因。

6.要通过视图V_AVG_S_G,将学号为“95003”的平均成绩改为90分,是否可以实现?

并说明原因。

四、实验过程与分析

1、使用企业管理器创建视图

2、

createviewS_C_GRADE

as

selects.sno,sname,cname,gradefromstudents,course,sc

wheres.sno=sc.snoando=o

createviewCOMPUTE_AVG_GRAD(sno,Gavg)

as

selectsno,avg(grade)fromsc

wheresnoin(selectsnofromstudentwhere

sdept='CS')groupbysno

二、1、

2、sp_renameV_计算机系学生,V_计算机系男生

三、1、

2、dropviewCOMPUTE_AVG_GRAD

项目二

1、createviewv_computer

as

select*fromstudentwheresdept='CS'

2、createviewV_S_C_G

as

selects.sno,sname,o,cname,gradefromstudents,coursec,sc

wheres.sno=sc.snoando=o

3、createviewv_num_avg(num,avgAge)

as

selectcount(*),avg(sage)fromstudent

groupbysdept

4、createviewv_year(birth)

as

selectyear(getdate())-sagefromstudent

5、createviewv_avg_s_g(num,Gavg)

as

selectcount(*),avg(grade)fromscgroupbysno

6、createviewv_avg_c_g(num,Gavg)

as

selectcount(*),avg(grade)fromscgroupbycno

二、1、selectsnofromv_avg_s_gwhereGavg>90

2、selectsno,sname,cno,gradefromS_C_GRADE,v_avg_c_gwheregrade>Gavg

三、1、updatev_computersetsname='s1'wheresno='95001'

updatev_computersetsname='s5'wheresno='95005'

2、insertintov_computer(sno,sname,sage,sdept)

values('s12','yanxi',19,'is')

3、insertintov_computer(sno,sname,sage,sdept)

values('s13','yanxi',19,'is')

4、deletefromv_computerwheresno='s13'

5、updateV_S_C_Gsetsname='s12'wheresno='95005'

6、updateV_AVG_S_GsetGavg=90wheresno='95003'

五、实验总结

本次实验学会了视图的创建、删除以及使用,视图是从一个或几个基本表导出的表,是虚表。

对视图的基本操作最终也是对基本表的操作。

视图就像一个窗口,透过它可以看到数据库中数据的变化,也可以在一个视图上再定义一个新的视图。

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

当前位置:首页 > 高等教育 > 军事

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

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