索引和视图实验报告

合集下载

索引和视图实验报告

索引和视图实验报告

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.掌握使用SQL语句建立视图与索引二.实验内容1.使用企业管理器建立视图索引2.使用SQL语句建立视图索引三.实验准备1.复习与本次实验内容相关知识2.对本次实验中要求自己完成的部分做好准备四.实验步骤1.用企业管理器建立一个基于学生表、课程表、成绩表的视图,要求该视图显示学号、姓名、课程、成绩o启动企业管理器、注册、连接o"新建视如下图所示o在新视图窗口内的关系图窗格内右击鼠标,弹出的菜单即为视图设计菜单,执行"添加表(B)...",如下图所示再在添加表对话框中选择SCORES表,再单击添加按钮。

依此操作,分别添加STUDENT、COURSES表,单击关闭按钮。

再在关系窗格内,拖动STUDENT表的"SID"至SCORES的STUDENT_ID,拖动COURSES表的"CNO"至SCORES的COURSE_ID,再分别选中STUDENT表的"SID","NAME"列(列前的复选框),COURSES表的"COURSE"列以及SCORES表的"SCORE"列,然后单击"!"按钮,显示视图结果,如下图所示:单击保存按钮,将视图保存为V_SCORES,单击确定.2.用查询分析器建立一个基于学生表、班级表的学生视图(V_STUDENTS),包括学号、姓名、班级、系,SQL语句如下:CREATE VIEW dbo.V_STUDENTSASSELECT dbo.U_STUDENTS.ID, dbo.U_,dbo.U_CLASSES.CLASS,dbo.U_CLASSES.DEPARTMENTFROM dbo.U_STUDENTS INNER JOINdbo.U_CLASSES ON dbo.U_STUDENTS.CLASS_ID = dbo.U_CLASSES.ID3.自己写一个SQL语句建立一个基于课程表的视图(V_COURSES),要求显示课程编号.课程名、学分。

实验三 索引和视图

实验三 索引和视图

实验三索引和视图
一实验目的
1、掌握创建视图的T-SQL语句的用法
2、掌握使用SQL Server Management Studio 创建视图和索引的方

3、掌握查看视图和索引的系统存储过程的用法
4、掌握修改视图的方法
5、掌握创建索引的命令
二实验内容
1.建立计算机系学生视图,该视图包含学生的学号、姓名和出生日期信息并查看视图定义
2.建立学生表中全体学生年龄的视图,该视图包含学生的学号、姓名、和年龄信息
3.建立选修“数据库”的学生的视图,该视图包含学生的学号和姓名信息
4.建立学生成绩视图,该视图包含学生的学号、姓名、课程名称和成绩信息,并进行加密
5.修改题目4中的学生成绩视图,该视图包含学生的学号、姓名、课程名称、成绩和班级信息
6.在数据库中,为“课程”表创建一个基于“课程号,课程名称”组合列的非聚集、复合索引khh_kcmc_index
7.查看学生表的索引
8.建立学生表的姓名唯一性索引,并且填充因子为60%。

数据库原理实验报告-实验四-视图与索引

数据库原理实验报告-实验四-视图与索引

《数据库原理》实验报告题目:实验四视图与索引学号班级日期2016.10.20一、实验内容、步骤以及结果1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。

(5分)2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。

--第一种方法CREATE VIEW V_SPJ ASSELECT sno,pno,qty FROM SPJWHERE jno=(SELECT jno FROM JWHERE jname ='');GO--删除建好的视图DROP VIEW V_SPJ;GO--第二种方法CREATE VIEW V_SPJ ASSELECT sno,pno,qtyFROM SPJ,JWHERE J.jno=SPJ.jno AND J.jname='';3.用SQL语句完成第五版教材第三章第11题中的视图查询(10分,每小题5分)。

11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。

针对该视图VSP完成下列查询:(1)找出三建工程项目使用的各种零件代码及其数量。

(2)找出供应商S1的供应情况。

4.用SQL语句完成视图的数据更新。

(15分,每题5分)(1)给视图V_SPJ中增加一条数据。

提示:-SPJ表中JNO允许为空时,数据可以插入基本表,此时JNO为NULL,由于JNO 为NULL,所以视图中没有该条数据。

-SPJ表中JNO不能为空时,可以使用instead of触发器实现。

(2)修改视图V_SPJ中的任意一条数据的供应数量。

(3)删除视图V_SPJ中的任意一条数据(注意所创建视图可以视图消解时,才能正常删除,否则会删除失败;也可以考虑用instead of触发器实现)。

视图和索引的创建和使用实验报告

视图和索引的创建和使用实验报告

信息工程学院实验报告课程名称:《数据库原理》Array实验项目名称:视图与索引得创建与使用一、实验目得:(1)掌握创建视图得SQL语句得用法。

(2)掌握修改视图得方法、(3)熟悉视图更新与基本表更新得区别与联系;认识视图得作用。

(4)熟悉索引得作用,以及不同类型索引得区别。

(5)学会用T—SQL语句对表创建与删除索引二、实验设备与器件Win7+Sql server2008三、实验内容与步骤利用备份文件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”得姓名改为“刘晓晨”,能否实现?若无法实现说明原因。

⑥通过视图V_AVG_S_G,将学号“200215121”得平均成绩改为90,能否实现?若无法实现说明原因。

索引和视图学习报告【最新】

索引和视图学习报告【最新】

索引与视图学习报告一、学习目标:1、了解索引的概念和作用2、理解索引的创建的使用3、理解视图的基本概念和作用4、掌握视图的创建、查看及删除操作二、学习要求:1、了解索引和视图的含义,目的和作用,索引一经建立,就由系统使用和维护,无需用户干预。

2、通过看书和网上查阅资料,想同学多问多思考。

三、学习内容:1、索引:(1)索引定义:索引就是数据表中数据和相应的存储位置的列表,利用索引可以提高在表或视图中的查找数据的速度。

(2)数据库中索引主要分为两类:聚集索引和非聚集索引。

SQL Server 2005还提供了唯一索引、索引视图、全文索引、xml索引等等。

聚集索引和非聚集索引是数据库引擎中索引的基本类型,是理解其他类型索引的基础。

聚簇索引:聚集索引是值表中数据行的物理存储顺序和索引的存储顺序完全相同。

聚集索引根据索引顺序物理地重新排列了用户插入到表中的数据,因此,每个表只能创建一个聚集索引。

聚集索引经常创建在表中经常被搜索到的列或按顺序访问的列上。

在默认情况下,主键约束自动创建聚集索引。

非聚簇索引:非聚集索引不改变表中数据列的物理存储位置,数据与索引分开存储,通过索引指向的地址与表中的数据发生关系。

非聚集索引没有改变表中物理行的位置,索引可以在以下情况下使用非聚集索引:1、如果某个字段的数据唯一性比较高2、如果查询所得到的数据量比较少其他类型索引:除了以上索引,还有以下类型索引:A、唯一索引:如果希望索引键都不同,可以创建唯一索引。

聚集索引和非聚集索引都可以是唯一索引。

B、包含新列索引:索引列的最大数量是16个,索引列的字节总数的最高值是900。

如果当多个列的字节总数大于900,切又想在这些劣种都包含索引是,可以使用包含性列索引。

C、视图索引:提供视图查询效率,可以视图的索引物理化,也就是说将结果集永久存储在索引中,可以创建视图索引。

D、XML索引:是与xml数据关联的索引形式,是XML二进制blob的已拆分持久表示形式。

006-实验六T-索引与视图(实验报告内容)

006-实验六T-索引与视图(实验报告内容)

实验六索引与视图(实验报告)一、目的1.掌握索引和视图的基本概念和功能。

2.掌握利用SQL Server Management Studio和Transact-SQL语句创建、维护索引的方法。

3.掌握SQL Server Management Studio和Transact-SQL语句创建、修改视图的方法。

4.掌握通过视图查看和修改基本表中的数据。

二、实验内容(1)完成下列操作1.利用SQL Server Management Studio为student表的classno字段创建非聚集、非唯一索引UC_classno。

2.利用Transact-SQL语句在teaching数据库中teacher表的tname列上创建非聚集唯一索引UQ_tname。

若该索引已存在,则删除后重建。

3.利用SQL Server Management Studio查看索引被查询优化器使用的情况。

4.利用Transact-SQL语句修改UQ_tname的索引属性,当执行多行插入操作时出现重复键值,则忽略该记录,且设置填充因子为80%。

5.利用SQL Server Management Studio在teaching数据库中创建视图v_course_avg,查询没门课程的课程号、课程名及选修该课程的学生的期末平均成绩平均分,并且按平均分降序排列。

6.利用Transact-SQL语句,在teaching数据库中创建视图v_age,查询年龄在18岁及以上的学生的学号、姓名、性别、出生日期和班级编号。

若该视图已存在,则删除后重建。

7.利用Transact-SQL语句,在teaching数据库中创建视图v_teacher_course,包含教师编号、教师姓名、职称、课程号、课程名和任课班级。

8.利用Transact-SQL语句修改v_age的视图定义,添加WITH CHECK OPTION选项。

9.通过视图v_teacher_course将教师编号为‘t05017’的教师的职称更改为‘副教授’。

数据库实验五 索引和视图

数据库实验五 索引和视图

华中科技大学《数据库技术与应用》实验报告专业班级:学生姓名:学号:实验地点:指导教师:实验日期时间:一、实验项目名称:索引和视图二、实验学时:三、实验目的:1.学会使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引。

2.学会使用SQL Server管理平台查看索引。

3.学会使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引。

4.掌握使用SQL Server管理平台和Transact-SQL语句CREATE-VIEW创建视图的用法。

5.了解对索引和视图更名的系统存储过程sp_rename的用法。

6.掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。

7.了解删除视图的Transact-SQL语句DROP VIEW的用法。

四、实验工具或环境五、实验内容、步骤、代码和结果:0. 创建studentsdb数据库及其相应表,并录入数据。

在SQL Server管理平台上,点击“新建查询”打开查询编辑器窗口,复制粘贴附件“创建数据库代码”中的代码到查询编辑器窗口,运行即可生成相关数据库和表,并有相应的数据。

1.分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。

alter table student_info alter column学号char(4)not null;alter table student_infoadd primary key(学号)alter tablecurriculum alter column课程编号char(4)not null;alter table curriculumadd primary key(课程编号)2.使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。

数据库实验四 视图与索引

数据库实验四 视图与索引

实验4 视图与索引一、实验目的1.本实验的目的是使学生掌握视图与索引的使用方法,加深对视图与索引作用的的理解。

2.通过自行设计视图与索引,加强学生的数据库设计能力。

二、实验内容1.索引的定义和维护1)建立唯一索引,测试插入、修改记录时所受的影响。

2)建立聚簇索引,比较建立前后的记录顺序变化。

3)建立多重索引,观察执行select语句查询的结果记录顺序。

4)删除相关索引。

2.视图的定义、查询和更新1)为学生选课系统从不同用户角度出发设计相应的视图。

2)利用视图进行相关查询。

3)利用视图进行更新,注意哪些视图是不可更新的。

三、实验原理1.建立索引语句CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);⏹用<表名>指定要建索引的基本表名字⏹索引可以建立在该表的一列或多列上,各列名之间用逗号分隔⏹用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。

缺省值:ASC⏹UNIQUE表明此索引的每一个索引值只对应唯一的数据记录⏹CLUSTER表示要建立的索引是聚簇索引(CLUSTERED)HAVING短语:筛选出只有满足指定条件的组⏹ORDER BY子句:对查询结果表按指定列值的升序或降序排序2.建立视图语句CREATE VIEW <视图名> [(<列名> [,<列名>]…)]AS <子查询> [WITH CHECK OPTION]四、实验步骤按实验目的和内容自行设计。

五、实验报告要求1)写出本实验中用到的SQL语句的使用说明;2)对每一实验结果进行分析;3)记录在查询实验中遇到的典型问题及你所采取的解决方法;。

数据库实验报告 索引和视图

数据库实验报告 索引和视图

西北师范大学计算机科学与工程学院学生实验报告2、在student表的studentno和classno列上创建唯一索引UQ-stu,若该索引已存在,则删除后重建。

然后输出student表中的记录,查看输出结果的顺序。

SQL代码:USE teachingGOIF EXISTS(SELECT name FROM sysindexes WHERE name='UQ_stu')DROP INDEX student.UQ_stuGOCREATE NONCLUSTERED INDEX UQ_stu ON student(studentno,classno)GOSELECT*FROM student实验结果:3、修改UQ-stu的索引属性,当执行多行插入操作时出现重复键值,则忽略该记录,且设置填充因子为80%SQL代码:USEteachingGOALTER INDEX UQ_stu ON student REBUILDWITH(PAD_INDEX=ON,FILEFACTOR=80,IGNORE-DUP_KEY=ON)GO实验结果:4、创建一个视图v-teacher,查询“计算机学院”所有教师的信息SQL代码:USE teachingGOCREATE VIEW v_teacherASSELECT*FROM teacherWHERE department='计算机学院'GOSELECT*FROM v_teacher实验结果:5、创建一个视图v-avgstu,查询每个学生的学号、姓名及平均分,并且按照平均分降序排序SQL代码:USE teachingGOCREATE VIEW v_avgstuASSELECT TOP(100)PERCENT student.studentno,studnt.sname,AVG(score.final)AS 'average'FROM student,scoreWHERE student.studentno=score.studentnoAND score.final IS NOT NULLGROUP BY student.studentno,student.snameORDER BY AVG(score.final)DESCGOSELECT*FROM v_avgstu实验结果:6、修改v-avgstu的视图定义,添加WITH CHECK OPTION选项SQL代码:USE teachingGOALTER VIEW v_avgstuASSELECT*FROM teacherWHERE department='计算机学院'WITH CHECK OPTIONGO实验结果:7、通过视图v-avgstu向基表teacher中分别插入数据(‘05039’,‘张馨月’,‘计算机应用’,‘讲师’,‘计算机学院’)和(‘06018’,‘李诚’,‘机械制造’,‘副教授’,‘机械学院’),并查看插入数据的情况SQL代码:USE teachingGOINSERT INTO v_teacherVALUES('05039','张馨月','计算机应用','讲师','计算机学院')INSERT INTO v_teacherVALUES('06018','李诚','机械制造','副教授','机械学院')SELECT*FROM v_teacherSELECT*FROM teacher实验结果:8、通过视图v-teacher将基表teacher中教师编号为05039的教师职称修改为“副教授”SQL代码:USE teachingGOUPDATE v_teacherSET prof='副教授'WHERE teacherno='05039'GOSELECT*FROM teacher实验结果:实验总结:通过本次实验掌握了索引、统计信息和视图等数据库对象的基本概念和基本操作。

数据库实验报告:视图 和索引

数据库实验报告:视图 和索引

一、实验步骤(一)附加上次实验所创建的数据库“db_Library”,并回顾该数据库的数据表信息。

(二)练习创建和管理视图1、使用管理控制台创建一个名为“计算机系借阅信息_VIEW”的视图,要求显示计算机系读者2011-1-1以后借阅的图书信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段。

打开sql server管理控制台窗口,打开新建视图对话框。

在添加表中添加tb_borrow和tb_reader表,在选中输出复选框中选中:读者编号,图书编号,借阅日期。

use db_library goselect * from 读者借阅信息_VIEWwhere 所在系='计算机'and 借阅日期>'2011_1_1'2、使用T-SQL语句创建一个名为“读者借阅信息_VIEW”的视图,要求显示所有的读者借阅信息,包括“读者编号”、“姓名”、“系部”、“图书编号”、“图书名称”和“借阅日期”等字段。

use db_library gocreate view 读者借阅信息_VIEW asselect tb_readder.读者编号,tb_reader.姓名,tb_reader所在系,tb_book.图书编号,tb_book.书名,tb_borrow.借阅日期 from tb_reader,tb_borrow,tb_bookwhere tb_reader.读者编号=tb_borrow.读者编号and tb_book.图书编号=tb_borrow.图书编号Select * from读者借阅信息_VIEW3、使用管理控制台查看“读者借阅信息_VIEW”视图的定义信息和依赖的对象。

打开管理控制台,在数据库“db_Library”下的“视图”对象;在左边窗口右击“读者借阅息_VIEW”该视图,在在窗口中选中“查看依赖关系”选项。

4、使用系统存储过程查看“计算机系续借阅信息_VIEW”视图的定义信息和依赖的对象。

数据库原理索引视图实验报告

数据库原理索引视图实验报告

数据库组成原理实验报告题目:索引、视图的定义院系:计算机科学与工程学院班级:姓名:学号:一、实验题目索引、视图的定义二、实验日期2014年10月25日三、实验目的及要求掌握嵌套查询语句的运用,掌握使用T -SQL语句创建视图的方法,包括视图的建立、删除、修改;了解如何应用视图有选择地查看所需数据,并熟悉通过视图更改数据表中数据的方法。

掌握创建索引的方法。

四、实验环境Sqlserver2008,windows xp。

五、实验内容在数据库TestDB中,基于表"项目数据表"和"员工数据表"创建视图,要求:(1)视图名为"员工项目"。

(2)包含字段"编号"、"姓名"、"名称"和"开始日期"。

(3)字段别名分别是"员工编号"、”员工姓名"、"项目名称"、"项目开始日期"。

六、实验步骤在数据库TestDB中,基于表"项目数据表"和"员工数据表"创建视图,要求为:(1)视图名为"员工项目"。

(2)包含字段"编号"、"姓名"、"名称"和"开始日期"。

(3)字段别名分别是"员工编号"、”员工姓名"、"项目名称"、"项目开始日期"。

(1)打开查询分析器。

在查询窗口书写CREATE VIEW语句创建视图,并指定字段别名:USE TestDBGOCREATE VIEW员工项目(员工编号,员工姓名,项目名称,项目开始日期) ASSELECT a·编号,a·姓名,b·名称,b·开始日期,FROM员工数据表AS a INNER JOIN项目数据表AS bON a·编号=b·负责人WHERE a·编号=b·负责人GO(2)使用INSERT语句通过视图向员工数据表中添加一条记录,要求"姓名"字段值为"马中兴"。

实验报告四 索引和视图

实验报告四 索引和视图

实验四索引和视图一、实验学时2学时二、实验目的(1)理解索引的概念与类型。

(2)掌握使用企业管理器创建与维护索引的方法。

(3)掌握T-SQL语句创建与维护索引的方法。

(4)理解视图的概念。

(5)掌握视图创建、更改的方法。

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

三、实验要求(1)硬件设备:奔腾II或奔腾II以上计算机,局域网。

SERVER、WINDOWS7、XP、WINDOWS9X/NT、WINDOWS(2)软件环境:WINDOWSSQL SERVER 2000/2005/2008中文版企业版或标准版。

(3)实验课前预习,课后及时完成实验内容。

(4)实验过程及记录按题目格式要求填写代码清单。

四、实验内容(一)索引索引分为两种:聚簇索引和非聚簇索引。

每张表只能有一个聚簇索引。

创建索引时的缺省设置是非聚簇索引。

1.使用企业管理器创建、管理索引(1)创建索引1)为Student表创建一个以Sno为索引关键字的惟一聚簇索引。

(若原已有,请删除,索引名为Sno_index)(提示:选择表后点击鼠标右键,选“设计”,窗口空白区域点击鼠标右键,选“索引/键”)基本步骤:2)为Student表创建以Sname,Sex为索引关键字的非聚簇索引(对Sname 以升序来排列,Sex以降序排列,并设置填充因子为70%)。

索引名为:SS_index。

(提示:填充因子为索引创建时索引里的数据页被填充的数量)基本步骤:(2)重命名索引将索引文件Sno_index重新命名为Sno_index1。

基本步骤:(3)删除索引将索引文件Sno_index1删除。

基本步骤:2.使用T-SQL语句创建、管理索引(1)创建索引1)为SC表创建一个非聚集索引Grade_index,索引关键字为Grade,升序,填充因子为80%。

(提示:with fillfactor=)T-SQL语句:create nonclustered index Grade_indexon SC(Grade)with fillfactor=80;2)为SC表创建一个唯一性聚集索引SC_index,索引关键字为Sno,Cno。

实验5数据库的索引和视图

实验5数据库的索引和视图

韶关学院
学生实验报告册
实验课程名称:数据库技术与应用
实验项目名称:数据库的索引和视图
实验类型(打√):(基础☑
设计
院系:教育学院专业班级:11教育技术学姓名:学号:
指导老师:林育曼
韶关学院教务处编制
一、实验预习报告内容
二、实验原始(数据)记录实验时间:2013年11月5日(星期二第五六节)
三、实验报告内容
6.使用企业管理器的“向导”工具对grade表创建一个聚集索引和唯一索引。

根据实验指导老师要求另附相同规格的纸张并粘贴在相应的“实验报告册”中。

2、实验报告册属教学运行材料,院系(中心)应按有关规定归档保管。

实验报告 3(视图、索引的创建与使用)

实验报告 3(视图、索引的创建与使用)

撰写人姓名:撰写时间:审查人姓名:实验全过程记录一、实验目的1、熟练掌握视图的创建与维护操作,熟练使用视图访问数据;2、熟练掌握索引的创建与维护操作,熟练使用索引以方便查询。

二、实验内容:1、在“对象资源管理器”中使用向导和在在“查询编辑器”中使用T-SQL语句创建视图,并修改视图。

再通过视图向数据库添加、修改、删除数据。

2、使用步骤1中两种方法进行索引的创建、修改、删除操作。

三、实验用仪器设备及材料软件需求:操作系统:Windows XP或更新的版本数据库管理系统:SQL Server 2005或更新的版本硬件需求:Pentium Ⅲ1G以上的CPU处理器、256MB以上的内存、1.5G以上自由硬盘空间、打印机、打印纸、CD-ROM驱动器等。

四、实验步骤:1、在“对象资源管理器”中展开需要建立视图的“公司管理系统”数据库,用鼠标右键单击“视图”对象,选择快捷菜单“新建视图”选项,打开新建“视图”对话框,根据需要选择添加的表和视图。

现添加“职工表”、“项目表”和“客户表”。

在视图设计窗口中,创建“查询姓‘李’的职工负责的上海的项目名称”的视图。

据此设置视图的输出列、列名、表名等属性。

保存该视图并利用此视图进行查询操作。

2、选择当前数据库为“公司管理系统”数据库。

在“查询编辑器”中使用T-SQL语句创建“查询客户表中所有地址在‘北京’的客户编号和名称”的视图。

通过此视图向数据库中的表进行添加、修改、删除等更新记录操作。

3、在“对象资源管理器”中展开需要建立索引的“职工表”,选中“索引”选项并展开。

选中“索引”对象,单击鼠标右键,在快捷菜单中选择“新建索引”选项,打开“新建索引”对话框。

根据“职工表”的“出生日期”列创建一不唯一、也不是聚集的索引。

设置完毕后保存该索引并进行相应的查询输出以观察索引设置的输出效果。

4、在“查询编辑器”中使用T-SQL语句对“客户表”的“客户名称”列和“地址”列创建一不唯一的、也不是聚集的复合索引。

实验四索引与视图

实验四索引与视图

实验4 数据库的索引与视图定义实验一、实验目的本实验的目的是使学生掌握索引与视图的定义与维护操作,加深对索引与视图在关系数据库中的作用的理解。

二、实验时数2学时[相关知识]建立索引是加快查询速度的有效手段。

用户可以根据应用环境的需要,在基本表上建立一个或多个索引,以提供多个存取路径,加快查找速度。

视图是根据子模式建立的虚拟表。

一个视图可以由一个表构造,也可以由多个表构造。

查看和修改视图就如同对表的操作一样,非常容易。

三、实验内容㈠索引1.创建索引1)为PROJ表的PNAME列创建非聚集索引Pindex。

2)为DEPA表的DNAME(降序),ADDR两列创建唯一非聚集索引Dindex。

3)在PROJ表的PNAME列上创建唯一非聚集索引Pindex,若该索引已存在则删除后重建。

2.查看索引1)查看DEPA表的索引信息。

2)查看数据库COMPANY索引使用的空间信息3.索引更名1)将DEPA表的索引Dindex名更改为Dindex1。

4.删除索引1)删除DEPA表的索引Dindex1。

㈡视图1.创建视图1)创建14号部门员工的视图EMPL_14(ENO,ENAME,SALARY)。

2) 创建包含项目名与员工名及工作天数的视图Prjemp。

3)在视图EMPL_14上创建工资在3000以上的员工的视图EMPL_14H3。

4)创建每个部门的平均工资的视图E_AVG(DNO,SAVG)。

2.查询视图1)根据视图Prjemp查询做'设计系统'项目的所有员工及工作天数。

2)根据视图E_AVG查询‘客户中心’的平均工资。

3.更新视图1)在视图EMPL_14中将1042号员工的姓名改为‘李立春’。

2)向视图EMPL_14中插入一条新记录(1050,‘赵英’,3500)。

3)删除视图EMPL_14中1042号员工的记录。

4.删除视图1)删除视图Prjemp。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7-1编程在teaching 数据库中的student 表的sname 列上创建唯一索引
IDX_sname。

USE teaching
GO
CREATE UNIQUE INDEX IDX_sname ON student(sname)
7-2 编程在teaching数据库中的student表的studentno和classno列上创建组合索引IDX_sc。

USE teaching
IF EXISTS(SELECT name FROM sysindexes WHERE name='IDX_sc')
DROP INDEX student.sc
GO
CREATE INDEX IDX_sc ON student(studentno,classno)
7-3 重新组织teaching 数据库中student 表上的IDX_sc 索引。

USE teaching
ALTER INDEX IDX_sc ON dbo.student REORGANIZE
7-4 重新生成teaching 数据库中student 表上的IDX_sname 索引,设置填充索引,将填充因子设置为80%,设置将中间排序结果存储在tempdb中。

USE teaching
ALTER INDEX IDX_sname ON dbo.student
REBUILD WITH(PAD_INDEX =ON,FILLFACTOR= 80,SORT_IN_TEMPDB =ON)
7-5 重新生成teaching 数据库中student 表上的C_studentno 索引,将其修改为聚集唯一索引,并指定该索引的叶级页的填充度为70%。

USE teaching
GO
CREATE UNIQUE CLUSTERED INDEX C_studentno
ON dbo.student(studentno)
WITH(PAD_INDEX =ON,FILLFACTOR= 70,DROP_EXISTING =ON)
7-6 删除teaching 数据库中student 表上的聚集索引C_studentno 和非聚集索引UC_classno。

USE teaching
GO
DROP INDEX student.C_studentno,student.UC_classno
7-8 通过DBCC SHOW STATISTICS 命令显示student 表IDX_sc 索引的统计信息。

USE teaching
GO
DBCC SHOW_STATISTICS (student, IDX_sc)
7-9 编程更新student表IDX_sc索引的统计信息
USE teaching
GO
UPDATE STATISTICS student IDX_sc
7-10 编程更新student表上所有索引的分布统计信息
USE teaching
GO
UPDATE STATISTICS student
7-11 编程在teaching数据库中创建一个名称为V_course的视图,包含所有类别为“必修”的课程信息。

use teaching
go
create view v_course
as
select *
from course
where type ='必修'
7-12 给出一个程序,在teaching数据库中创建一个名称为v_final的视图,包含学生学号、姓名、课程号、课程名和期末成绩,按学号升序排序,相同学号的记录按课程号升序排序。

7-13 给出一个程序,在teaching数据中创建一个名称为v_max的视图,查询每个班最高分的课程名和分数,按班级号升序排序。

use teaching
go
create view v_max
as
select top 10 classno,cname,max(final) as max
from student s,score sc,course c
where sc.courseno=c.courseno and s.studentno=sc.studentno and final is not null group by classno,cname
order by classno
7-14 通过v_final和v_course视图查询所有学生的学号、姓名和已修必修课的总学分。

USE teaching
SELECT studentno AS'学号',sname AS'姓名',SUM(credit)AS'必修课总学分'
FROM v_final,v_course
WHERE v_final.courseno=v_course.courseno
GROUP BY studentno,sname
7-15 利用sysobjects和syscomments两个系统表查看v_avg视图的名称、ID和定义视图的文本信息。

USE teaching
SELECT ,sysobjects.id,syscomments.text
FROM sysobjects,syscomments
WHERE ='v_avg'AND sysobjects.type='V'AND
sysobjects.id=syscomments.id
7-18 通过视图V_course向基表course中插入数据(‘c05129’,‘数据库编程’,‘必修’,64,4)。

Use teaching
Go
INSERT INTO v_course
VALUES('c05129','数据库编程','必修',64,4)
Go
SELECT *FROM course
7-21 通过视图V_course将基表course课程号为c05129的课程名称修改为‘数据库应用与开发’。

USE teaching
GO
UPDATE v_course
SET cname='数据库应用与开发'
WHERE courseno='c05129'
GO
SELECT*FROM course
7-23 通过视图v_final将基本表student和score中学号为'0925121107',选修的课程号为'c05129'的学生姓名修改为'李静',期末成绩修改为分。

USE teaching
GO
UPDATE v_final
SET sname='李静',final=60
WHERE studentno='0925121107'AND courseno='c05109'
7-24 通过视图v_sex删除基表student中学号为0938211038的学生记录。

USE teaching
Go
Delect from v_sex
Where studentno='0938211038'
GO
SELECT * FROM student
7-25 通过视图v_course删除基表course中课程号为c05109的课程记录USE teaching
GO
DELECT FROM v_course
WHERE courseno='c05109'。

相关文档
最新文档