数据库实验实验10 视图与索引
视图和索引的创建和使用实验报告

信息工程学院实验报告课程名称:《数据库原理》Array实验项目名称:视图和索引的创建和使用一、实验目的:(1)掌握创建视图的SQL语句的用法。
(2)掌握修改视图的方法。
(3)熟悉视图更新与基本表更新的区别与联系;认识视图的作用。
(4)熟悉索引的作用,以及不同类型索引的区别。
(5)学会用T-SQL语句对表创建和删除索引二、实验设备与器件Win7 +Sql server 2008三、实验内容与步骤利用备份文件school,还原数据库,然后完成以下实验内容:(1)用T-SQL语句,定义信息系学生基本情况视图V_IS。
(2)用T-SQL语句,将Student,Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G。
(3)用T-SQL语句,将各系学生人数,平均年龄定义为视图V_NUM_AVG。
(4)用T-SQL语句,定义一个反映学生出生年份的视图V_YEAR。
(5)用T-SQL语句,将各位学生学号、选修课程的门数及平均成绩定义为视图V_AVG_S_G。
(6)用T-SQL语句,将各门课程的课程号、选修人数及平均成绩定义为视图V_AVG_C_G。
(7)用T-SQL语句完成以下视图操作,查看结果,并分析原因。
①通过视图V_IS,将学号为“200215125”的学生姓名更改为“张小立”,并查看结果;②通过视图V_IS,新增加一个学生记录 ('200215126','黄笑',19, '男','IS'),并查看结果。
③通过视图V_IS,新增加一个学生记录 ('200215127','李霞',19, '女','MA'),并查看结果。
④通过视图V_IS,删除学号为“200215126”的学生信息,并查看结果。
⑤通过视图V_S_C_G,将学号“200215122”的姓名改为“刘晓晨”,能否实现?若无法实现说明原因。
数据库技术索引与视图

实验报告
课程名称:数据库技术项目名称:索引和视图
姓名:专业:班级:学号同组成员
1注:1、实验预习部分包括实验环境准备和实验所需知识点准备。
2、若是单人单组实验,同组成员填无。
5.分别使用企业管理器和系统存储过程sp_helpindex查看grade
6.使用企业管理器的“向导”工具对grade表创建一个聚集索引和唯一索引。
10.在studentsdb数据库中,使用Transact-SQL
12.分别使用企业管理器和Transact-SQL语句修改视图每个学生所学课程数目。
15.利用视图v_stu_i为student_info表添加一行数据:学号为
16.利用视图v_stu_i删除学号为
实验报告成绩(百分制)__________ 实验指导教师签字:__________
3注:1、实验小结应包含实验所需知识点和实验方法的总结,实验心得体会等。
2、分组实验需包含同组讨论内容。
索引和视图实验报告

7-1编程在teaching 数据库中的student 表的sname 列上创建唯一索引IDX_sname。
USE teachingGOCREATE UNIQUE INDEX IDX_sname ON student(sname)7-2 编程在teaching数据库中的student表的studentno和classno列上创建组合索引IDX_sc。
USE teachingIF EXISTS(SELECT name FROM sysindexes WHERE name='IDX_sc')DROP INDEX student.scGOCREATE INDEX IDX_sc ON student(studentno,classno)7-3 重新组织teaching 数据库中student 表上的IDX_sc 索引。
USE teachingALTER INDEX IDX_sc ON dbo.student REORGANIZE7-4 重新生成teaching 数据库中student 表上的IDX_sname 索引,设置填充索引,将填充因子设置为80%,设置将中间排序结果存储在tempdb中。
USE teachingALTER INDEX IDX_sname ON dbo.studentREBUILD WITH(PAD_INDEX =ON,FILLFACTOR= 80,SORT_IN_TEMPDB =ON)7-5 重新生成teaching 数据库中student 表上的C_studentno 索引,将其修改为聚集唯一索引,并指定该索引的叶级页的填充度为70%。
USE teachingGOCREATE UNIQUE CLUSTERED INDEX C_studentnoON dbo.student(studentno)WITH(PAD_INDEX =ON,FILLFACTOR= 70,DROP_EXISTING =ON)7-6 删除teaching 数据库中student 表上的聚集索引C_studentno 和非聚集索引UC_classno。
数据库之 索引和视图

1、索引的概念 2、索引的创建与管理 3、视图的概念 4、视图的创建与管理
1、索引的概念
索引是为了加速对表中数据行的检索而创建的一种分散的 存储结构,索引是针对一个表而建立的。 数据库中的索引是一个列表,在这个列表中包含了某个表 中一列或者若干列值的集合,以及这些值的记录在表中存 储位置的物理地址。
CREATE VIEW <视图名>[ ( <字段名1> , <字段名2>[ , … n ] ) ] AS <查询语句> [ WITH CHECK OPTION ]
参数说明:
字段名:视图中包含的列,可以有多个列名;若使用与源表或视图中相 同的列名时,则不必给出列名。 查询语句:用来创建视图的SELECT语句。可在SELECT语句中查询多 个表或视图,以表明新创建的视图所参照的表或视图,但对SELECT语 句有以下的限制:
(1)创建聚簇索引
(2)创建非聚簇索引
(3)创建惟一索引
(4)创建复合索引
2.4 使用企业管理器删除索引
3、视图的概念
视图可以看作是从一个或多个表(或视图)导出的表。 视图与表(有时为了与视图区别,也称表为基本表)不同, 视图是一个虚表,即视图所对应的数据不进行实际存储。数 据库中只存储视图的定义,对视图的数据进行操作时,系统 根据视图的定义去操作与视图相关联的基本表。 视图一经定义后,就可以像表一样被查询、修改、删除和更 新。
(2)使用视图的注意事项
只有在当前数据库中才能创建视图。 视图的命名必须遵循标识符命名规则,不能与表同名;而 且某一数据库中的视图名是惟一的,即使是以不同的用户 名义创建的。 不能把规则、默认值或触发器与视图相关联。 不能在视图上建立任何索引,包括全文索引。
数据库的索引和视图实验报告

Aa2
Int
Aa3
D建表bbb,表结构如下所示:
字段名
类型
长度
Bb1
Varchar
30
Bb2
Int
Bb3
Dec
6,2
结果如图:
表aaa.
表bbb:
[2]用Drop Table删除表aaa
语句:.
[3]用Alter Table修改表bbb,添加一个字段Bb4,类型Varchar,长度20.
课程名称
《数据库管理系统》
实验名称
数据库的索引和视图
实验目的
和要求
掌握查询分析器中用DDL语言进行对索引、视图的增加、删除和改动.了解嵌入式SQL语言.
实验内容
和步骤
[1]打开数据库SQL Server 2000的查询分析器,用Create Table建表aaa,结构如下所示:
字段名
类型
长度
Aa1
Varchar
用Alter Table修改表bbb,添加一个字段Bb4,类型Varchar,长度20.
语句:
结果如下:
[4]用Create View对表bbb的Bb1和Bb4建立一个视图Viewbbb,字段名为Viewbb1和Viewbb2.
语句:
结果如下:
[5]Drop View删除视图Viewbbb
语句:
结果如下:
[6].用Create Index对表Bb的Bb3字段建立一个升序索引,索引名Indexbbb
语句:
[7]用Drop Index删除索引Indexbbb.
语句:
研究与
探讨
评语
集美大学实验报告五2012年11专业年级2010信计专业1011课程名称数据库管理系统实验名称数据库的索引和视图实验目的和要求掌握查询分析器中用ddl语言进行对索引视图的增加删除和改动
数据库实验-数据库索引、视图与触发器

石家庄经济学院实验报告学院: 信息工程学院专业: 网络工程信息工程学院计算机实验中心制1.索引的建立和删除操作2.视图的创建、修改、更新和查询操作二实验目的1.掌握数据库索引建立与删除操作,掌握数据库索引的分类,并了解建立数据库索引的意义、作用。
2.掌握视图的创建和查询操作,理解视图的使用,理解实图在数据库安全性中的作用。
三实验内容1.索引的建立和删除操作(1)在S表中,建立按照sno升序的惟一性索引snoIDX。
(2)在SC表中,建立按照学号升序和课程号降序的唯一性索引scIDX。
(3)在S表中,按照生日建立一个非聚簇索引birthdayIDX。
(4)在C表中,建立一个按照课程名升序的聚簇索引cnameIDX。
(5)删除索引cnameIDX。
2.视图的创建、修改、更新和查询操作(1)建立一个关于所有女生信息的视图S_GIRL。
(2)将各系学生人数,平均年龄定义为视图V_NUM_AVG(3)建立一个视图反映学生所选课程的总学分情况TOTAL_CREDIT。
(4)建立一个所有学生课程成绩的视图S_GRADE,包括基本学生信息,课程信息和成绩。
(5)在视图S_GRADE基础之上,建立一个两门课以上成绩不及格的学生情况视图FAIL_GRADE。
(6)建立一个至少选修了4门课及4门课以上的学生信息的视图SC_FOUR。
(7)修改视图S_GIRL,要求只显示1997年以前出生的女生信息。
(8)在视图FAIL_GRADE查询不及格超过2门课的学生信息。
(9)删除视图S_GRADE。
(10)通过视图S_GIRL,将“王丹”的名字修改为“汪丹”,并查询结果。
(11)通过视图S_GIRL,新增一个学生信息(“刘兰兰”,“女”,“计算机学院”,1996-8-8),并查询结果。
(12)通过视图S_GIRL,删除1995年出生的女生信息,并查询结果。
(13)通过视图S_GRADE,将“汪丹”的名字修改为“王丹”,是否可以实现,请说明原因。
数据库原理之视图与索引的实验报告

一、实验名称
视图与索引
二实验目的
1.学会使用企业管理器建立视图与索引
2.掌握使用SQL语句建立视图与索引
三实验内容
1.使用企业管理器建立视图索引
2.使用SQL语句建立视图索引
四实验准备
1.复习与本次实验内容相关知识
2.对本次实验中要求自己完成的部分做好准备
五实验步骤
1.用企业管理器建立一个基于学生表、课程表、成绩表的视图,要求该视图
显示学号、姓名、课程、成绩
用查询分析器建立一个基于学生表、班级表的学生视图
自己写一个SQL语句建立一个基于课程表的视图(V_COURSES),要求显示
课程编号、课程名、学分。
查看索引
2.为学生表按班级建立一个非簇集索引FK_U_STUDENTS,操作过程如下
实验心得
总的来说,这次实验因为在上面的几次试验中取得的一些经验,在做实验的时候,也不觉得有多么大的困难了。
相反,感觉有点轻车熟路。
这次实验的目的是学会使用企业管理器建立视图与索引,掌握使用SQL语句建立视图与索引。
在做实验的时候遇到的问题是发现自己建立的视图遇到与表的内容不符的情况,这是由于我对上次表的内容有些模糊,而导致后面做实验出现问题。
在查询了以前建的表后,我又认真做了修改,使得在建立视图的时候能够与表建立紧密的联系,从而不会孤立表的建立。
到了后期,视图的建立也简单多了。
其实,在我做完这个实验之后,明白这次实验都主要是围绕SQL语句,对于语句的熟悉和掌握,有助于我们对数据的应用。
在以后的工作中,也能够发挥到学到知识的作用。
索引和视图实验答案

《索引和视图》实验一、实验目的与要求1.学会使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引。
2.学会使用SQL Server管理平台查看索引。
3.学会使用SQL Server管理平台和Transact-SQL语句DROP INDEX 删除索引。
4.掌握使用SQL Server管理平台、向导等创建、管理和删除全文索引,并使用全文索引查询信息的方法。
5. 掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。
6.掌握系统存储过程sp_rename的用法。
7.掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。
二、实验平台1、操作系统:Windows XP或Windows 20032、数据库管理系统:SQL Server 2005三、实验内容1.分别使用SQL Server管理平台和Transact-SQL语句为教务管理系统数据库的《学生信息》和《课程信息》创建主键索引。
(1) 使用SQL Server管理平台为教务管理系统数据库的《学生信息》和《课程信息》创建主键索引。
(2) 使用Transact-SQL语句为教务管理系统数据库的《学生信息》和《课程信息》创建主键索引。
USE教务管理系统GOcreate unique nonclustered index学生信息_idxon学生信息(学号)GOUSE教务管理系统GOcreate unique nonclustered index课程信息_idxon课程信息(课程编号)GO2.使用SQL Server管理平台按《课程信息》的课程编号列创建唯一性索引。
3.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的《成绩表》的“分数”字段创建一个非聚集索引,命名为《成绩_index》。
(1)使用SQL Server管理平台为教务管理系统数据库的《成绩表》的“分数”字段创建一个非聚集索引,命名为《成绩_index》。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验10 视图与索引
1.实验目的
(1)掌握视图的创建、修改方法。
(2)能够通过视图修改数据。
(3)理解索引的概念和索引的作用,学会使用索引。
(4)了解聚簇索引和非聚簇索引。
2.实验内容
(1)创建视图
①创建03班学生的视图
create view c1_student
as
select * from SM.dbo.student where clno='03'
②创建03班学生的视图,输出其学号、姓名和年龄
create view c11_student
as
select sno,sname,sage from SM.dbo.student where clno='03'
③创建030002班学生的视图,输出其学号、姓名和年龄,并且更换列名
create view c12_student(学号,姓名,年龄)
as
select sno,sname,sage from SM.dbo.student where clno='030002'
④修改表sutdent的结构,增加一列,再执行上述3组语句,查看结果
??
⑤通过如下两组SQL语句创建星“王”的学生的视图,然后分别向两师徒中插入
一条姓的记录,用SQL语句查看执行结果
create view w1_Student
as
select sno,sname from SM.dbo.student where sname like '王%' with check option
create view s2_Student
as
select sno,sname from SM.dbo.student where sname like '王%'
⑥创建17信计选修了6课程的学生的视图
create view IS_C1(SNo,SName,Score)
as
select student.sno,sname,score from
SM.dbo.student,SM.dbo.SC,SM.dbo.class
where clname='17信计' and student.sno=o and o='6' and student.clno=class.clno
⑦创建17信计选修了6号课程且成绩几个的学生的视图
create view IS_C2
as
select sno,sname,score from IS_C1 where Score>=60
视图可以创建在多张表的基础上,也可以创建在视图上⑧创建一个反应学生出生年份的视图
create view bt_s(sno,sname,sbirth)
as
select sno,sname, 2019-sage from SM.dbo.student
⑨将学生的学号和平均成绩创建一个视图
create view s_g(sno,Gavg)
as
select sno,AVG(score) from SM.dbo.SC group by sno
(2)更新视图定义
①创建所有年龄大于23岁的学生视图
create view s_g1(sno,sage)
as
select sno,sage from SM.dbo.student where sage>23 ②使用select语句查看其结果
select * from s_g1
③将视图s_g1的年龄限定改为20
alter view s_g1
as
select sno,sage from SM.dbo.student where sage>20
(3)删除视图
drop view s_g1
(4)更新视图
①向03班学生的视图C1_student中插入一条记录
insert into c1_student(sno, clno,sname)
values('04002', '030002', '张三')
②使用select语句查看视图c1_student和基本表student
select * from c1_student
select * from SM.dbo.student
③将03班学生的视图c1_student中学号为15148的学生年龄改为23 update c1_student
set sage=23 where sno='15148'
④将03班学生的视图c1_student中学号为15148的学生的记录删除
delete from c1_student where sno='15148'
⑤将上面的两种操作转换为对基表student的修改
(5)在TName列上创建索引
①在对象资源管理器树形目录中展开SM数据库,打开Teacher表的表设计窗口。
②在表中的任意位置上单机鼠标右键,在弹出的快捷菜单中选择“索引/键”命令。
③在“索引/键”对话框中单机“添加”按钮,创建索引。
④在“名称”文本框中输入索引名,在“是唯一的下拉列表框中选择“是”,创建一个唯一性索引,如下图
(6)使用sql语句在表course上创建一个唯一性的聚簇索引,索引排列顺序为降序
use SM
create UNIQUE CLUSTERED index IX_CNo ON Course(CNO DESC)
(7)使用SQL语句在表Course上创建一个非唯一性的非聚簇索引
create nonclustered index IX_CNo IX_CName ON course(cname)
create nonclustered index IX_CNo IX_CName ON course(cnmae) with
drop_existing
(8)查看表Course上的所有索引
USE SM
EXEC sp_helpindex Course
(9)删除表Course上的IX_CNo索引USE SM
DROP INDEX Course.IX_CNo。