韶 关 学 院
学 生 实 验 报 告 册
实验课程名称:数据库技术与应用 实验项目名称:数据库的索引和视图 实验类型(打√):(基础
☑、综合、 设计 )
院系: 教育学院 专业班级: 11教育技术学 姓名: 学号: 指导老师: 林育曼
韶关学院教务处编制
一、实验预习报告内容
预习日期: 2013年 11 月 3日 实验预习报告内容原则上应包含实验目的、实验所用主要仪器药品、实验原理与公式、 实验预习疑问等项目。 一、实验目的 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的用法。 二、实验准备 1、了解聚集索引和非聚集索引的概念。 2、了解Transact-SQL语句CREATE INDEX创建索引的语句。 3、了解企业管理器创建索引的步骤。 4、了解Transact-SQL语句DROP INDEX删除索引的用法。 5、了解创建视图Transact-SQL语句CREATE VIEW的格式和用法。 6、了解修改视图Transact-SQL语句ALTER VIEW修改视图的方法。 7、了解视图更名的系统存储过程sp_rename的用法。 8、了解删除视图Transact-SQL语句DROP VIEW用法。 三、实验内容 1、完成上机实验指导中的实验5,并回答实验中的实验思考。 具体实验要求看上机实验指导书的12~14页。(9~14题选做) 实验预习评分:
2
二、实验原始(数据)记录
实验时间:2013年11月5日(星期 二 第 五六 节) 实验同组人: 如有实验数据表格,学生在实验预习时应画好实验数据表格,供实验时填写数据(本页如 不够,可另附相同规格的纸张)。 指导教师 批阅及签名
签名: 年 月 日 3
三、实验报告内容
2013年 11月 6日 实验报告内容原则上应包含主要实验步骤、实验数据计算(实验操作)结果、实验结果 (疑问)分析等项目。 实施内容: 一、根据实验要求完成实验:(写明步骤和截图) 1. 分别使用企业管理器和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。 4
2. 使用企业管理器按curriculum表的课程编号列创建唯一性索引。 3. 分别使用企业管理器和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。 5
4. 为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。 5. 分别使用企业管理器和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。 6. 使用企业管理器的“向导”工具对grade表创建一个聚集索引和唯一索引。 6
7
7. 使用系统存储过程sp_rename将索引grade_index更名为grade_ind。 8. 分别使用企业管理器和Transact-SQL语句DROP INDEX删除索引grade_ind。再次使用系统存储过程sp_helpindex查看grade表上的索引信息。
8
9. 分别使用企业管理器和系统存储过程sp_fulltext_database为studentsdb数据库启用全文索引。 10. 分别使用企业管理器和系统存储过程sp_fulltext_catalog为studentsdb数据库建立全文目录,命名为FT_stu。为student_info表建立全文索引数据元。 execute sp_fulltext_catalog ˊFT_stuˊ,ˊcreateˊ exec sp_fulltext_tableˊstudent_infoˊ,ˊcreateˊ,ˊFT_stuˊ,ˊPK_student_infoˊ 在建立全文索引数据元之前保证已为student_info表建立了PK_student_infl索引。 11. 为student_info表设置全文索引列名为ˊ家庭住址ˊ。在全文目录中注册该表,激活表的全文检索能力。 execute sp_fulltext_columnˊstudent_infoˊ,ˊ家庭住址ˊ,ˊaddˊ execute sp_fulltext_tableˊstudent_infoˊ,ˊactivateˊ 12. 填充全文目录,检查全文目录填充情况。 execute sp_fulltext_catalog ˊFT_stuˊ,ˊstart_fullˊ While (fulltextcatalogproperty(ˊFT_stuˊ,ˊpopulateStatusˊ)<>0) BEGIN waitfor delayˊ0;0;30ˊ--如果全文目录正处于填充状态,则等待30s后再检测一次 END 13. 在student_info表中,分别使用CONTAINS和FREETEXT函数通过全文目录检索家庭住址包含25号的记录。 SELECT姓名,家庭住址 FROM student_info WHERE CONTAINS(家庭住址,ˊ25号ˊ) 14. 使用系统存储过程从studentsdb数据库中禁用全文检索。 15.在studentsdb数据库中,以student_info表为基础,使用企业管理器建立名为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。 9
16.在studentsdb数据库中,使用Transact-SQL语句CTEATE VIEW建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为‘0003’的学生情况。 10
17.基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图中具有所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g查询学号为0001的学生的所有课程与成绩 11
18.分别使用企业管理器和Transact-SQL语句修改视图v_stu_c,使之显示学号、姓名、每个学生所学课程数目。 19.使用Transact-SQL语句ALTER VIEW修改视图v_stu_i,使其具有列明学号、姓名、性别。 12
20.使用系统存储过程sp_rename将视图v_stu_i更名为v_stu_info。 21.利用视图v_stu_i为student_info表添加一行数据:学号为0015、姓名为陈婷、性别为女。 22.利用视图v_stu_i删除学号为0015的学生记录。 13
23.利用视图v_stu_g修改姓名为刘卫平的学生的高等数学的分数为84. 24.使用Transact-SQL语句DROP VIEW删除视图v_stu_c和v_stu_g。
14
四、思考问题 1、是否可以通过视图v_stu_g修改grade表中学号列数据。 答:不能。 2、通过对视图上的操作,比较通过视图和基表操作数据的异同。 答:在操作上,视图适合于多表连接浏览用,不适合增删改;在空间上,表-物理空间;视图-逻辑存在,虚拟表;在修改上,表可及时修改;视图只由创建语句修改;在本质上,视图是查看数据表的一种方法(SQL语句的集合) 实验报告评分: 注:1、如个别实验的实验报告内容多,实验报告册页面不够写,或有识图、画图要求的,学生应
根据实验指导老师要求另附相同规格的纸张并粘贴在相应的“实验报告册”中。 2、实验报告册属教学运行材料,院系(中心)应按有关规定归档保管。
15
因篇幅问题不能全部显示,请点此查看更多更全内容