实验5 索引和视图

上传人:wt****50 文档编号:37828917 上传时间:2018-04-23 格式:DOC 页数:5 大小:55.50KB
返回 下载 相关 举报
实验5  索引和视图_第1页
第1页 / 共5页
实验5  索引和视图_第2页
第2页 / 共5页
实验5  索引和视图_第3页
第3页 / 共5页
实验5  索引和视图_第4页
第4页 / 共5页
实验5  索引和视图_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验5 索引和视图》由会员分享,可在线阅读,更多相关《实验5 索引和视图(5页珍藏版)》请在金锄头文库上搜索。

1、实验实验 5 5 索引和视图索引和视图一、实验目的一、实验目的1.学会使用企业管理器和 Transact-SQL 语句 CREATE INDEX 创建索引。 2.学会使用企业管理器查看索引。 3.学会使用企业管理器和 Transact-SQL 语句 DROP INDEX 删除索引。 4.掌握使用企业管理器、向导等创建、管理和删除全文索引,并使用全文索引查询 信息的方法。 5.掌握使用企业管理器和 Transact-SQL 语句 CREATE-VIEW 创建视图的用法。 6.掌握系统存储过程 sp_rename 的用法。 7.掌握使用 Transact-SQL 语句 ALTER VIEW 修改视

2、图的方法。二、实验准备二、实验准备1.了解聚集索引和非聚集索引的概念。 2.了解使用 Transact-SQL 语句 CREATE INDEX 创建索引的语法。 3.了解使用企业管理器创建索引的步骤。 4.了解 Transact-SQL 语句 DROP INDEX 删除索引的用法。 5.了解创建视图的 Transact-SQL 语句 CREATE INDEX 的语法格式及用法。 6.了解修改视图的 Transact-SQL 语句 ALTER VIEW 的语法格式。 7.了解视图更名的系统存储过程 sp_rename 的用法。 8.了解删除视图的 Transact-SQL 语句 DROP VIE

3、W 的用法。三、实验内容三、实验内容1.分别使用企业管理器和 Transact-SQL 语句为 studentsdb 数据库的 student_info 表格 和 curriculum 表创建主键索引。CREATE INDEX index1 ON student_info (学号 ASC)CREATE INDEX index2 ON curriculum (课程编号 ASC)2.使用企业管理器按 curriculum 表的课程编号列创建唯一性索引。 CREATE UNIQUE INDEX index3 ON curriculum (课程编号 ASC)3.分别使用企业管理器和 Transact-

4、SQL 语句为 studentsdb 数据库的 grade 表的“分数” 字段创建一个非聚集索引,命名为 grade_index。 CREATE INDEX grade_index ON grade(分数)4.为 studentsdb 数据库的 grade 表的“学号”和“课程编号”字段创建一个复合唯一索 引,命名为 grade_id_c_ind。CREATE UNIQUE INDEX grade_id_c_ind ON grade(学号,课程编号)5.分别使用企业管理器和系统存储过程 sp_helpindex 查看 grade 表和 student_info 表上的 索引信息。sp_help

5、index grade 6.使用企业管理器的“向导”工具对 grade 表创建一个聚集索引和唯一索引。CREATE CLUSTER/UNIQUE INDEX ON grade7.使用系统存储过程 sp_rename 将引索 grade_index 更名为 grade_ind。sp_rename grade.grade_index,grade_ind, INDEX8.分别使用企业管理器和 Transact-SQL 语句 DROP INDEX 删除索引 grade_ind。 再次使用系统存储过程 sp_helpindex 查看 grade 表上的索引信息。DROP INDEX grade.grad

6、e_ind9.分别使用企业管理器和系统存储过程 sp_fulltext_database 为 studentsdb 数据库启用 全文索引。 Sp_fulltext_database enable10.分别使用企业管理器和系统存储过程 sp_fulltext_catalog 为 studentsdb 数据库建立 全文目录,命名为 FT_stu。为 student_info 表建立全文索引数据元。execute sp_fulltext_catalog FT_stu,createexec sp_fulltext_tablestudent_info,create,FT_stu,PK_student_i

7、nfo11.为 student_info 表设置全文索引列名为家庭住址。在全文目录中注册该表,激 活表的全文检索能力。execute sp_fulltext_columnstudent_info,家庭住址,addexecute sp_fulltext_tablestudent_info,activate12.填充全文目录,检查全文目录填充情况。execute sp_fulltext_catalog FT_stu,start_fullWhile (fulltextcatalogproperty(FT_stu,populateStatus)0)BEGINwaitfor delay0;0;30-如果

8、全文目录正处于填充状态,则等待 30s 后再检测一 次END13.在 student_info 表中,分别使用 CONTAINS 和 FREETEXT 函数通过全文目录检 索家庭住址包含 25 号的记录。SELECT 姓名,家庭住址FROM student_infoWHERE CONTAINS(家庭住址,25 号)14.使用系统存储过程从 studentsdb 数据库中禁用全文检索。 Sp_fulltext_database enable15.在 studentsdb 数据库中,以 student_info 表为基础,使用企业管理器建立名为 v_stu_i 的视图,使视图显示学生姓名、性别、家

9、庭住址。CREATE VIEW v_stu_iAS SELECT * 姓名,性别,家庭住址FROM student_info16.在 studentsdb 数据库中,使用 Transact-SQL 语句 CREATE VIEW 建立 一个名为 v_stu_c 的视图,显示学生的学号、姓名、所学课程的课程编号,并 利用视图查询学号为 0003 的学生情况。 CREATE VIEW v_stu_cAS SELECT 学号,姓名,课程编号FROM student_info INNER JOIN gradeWHERE student_info.学号=grade.学号SELECT 学号,姓名,课程编号

10、FROM v_stu_c WHERE 学号=000317.基于 student_info 表、curriculum 表和 grade 表,建立一个名为 v_stu_g 的视图,视图中具有所有学生的学号、姓名、课程名称、分数。使用 视图 v_stu_g 查询学号为 0001 的学生的所有课程和成绩,如图 1-9 所示。学号姓名课程名称分数 0001刘卫平大学计算机基础80 0001刘卫平C 语言程序设计90 0001刘卫平SQL Server 数据库87 0001刘卫平英语86 0001刘卫平高等数学78图 1-9 学号为 0001 的学生的视图信息CREATE VIEW v_stu_gASSE

11、LECT 学号,姓名,课程名称,分数FROM student_info, gradeWHERE student_info.学号=grade.学号ORDER BY 学号SELECT 学号,姓名,课程名称,分数FROM v_stu_gWHERE 学号=0001 18.分别使用企业管理器和 Transact-SQL 语句修改视图 v_stu_c,使之显示 学号、姓名、每个学生所学课程数目。 ALTER VIEW v_stu_c AS SELECT student_info.学号,姓名,选修科目=COUNT(grade.学号) FROM student_info INNER JOIN grade ON

12、 student_info.学号=grade.学 号 GROUP BY student_info.学号,姓名19.使用 Transact-SQL 语句 ALTER VIEW 修改视图 v_stu_i,使其具有列名 学号、姓名、性别。ALTER VIEW v_stu_i(学号,姓名,性别) AS SELECT 学号,姓名,性别 FROM student_info20.使用系统存储过程 sp_rename 将视图 v_stu_i 更名为 v_stu_info。sp_rename v_stu_i,v_stu_info21.利用视图 v_stu_i 为 student_info 表添加一行数据:学号为

13、 0015、姓 名为陈婷、性别为女。 INSERT INTO v_stu_i VALUES(0015, 陈婷, 女)22.利用视图 v_stu_i 删除学号为 0015 的学生记录。 DELETE FROM v_stu_i WHERE 学号=001523.利用视图 v_stu_g 修改姓名为刘卫平的学生的高等数学的分数为 84。 UPDATE v_stu_gSET 分数=84WHERE 姓名=刘卫平 AND 课程名称=高等数学24使用 Transact-SQL 语句 DROP VIEW 删除视图 v_stu_c 和 v_stu_g。 DROP VIEW v_stu_c, v_stu_g四、实验思考四、实验思考1.是否可以通过视图 v_stu_g 修改 grade 表中学号列数据? 不可以。视图中的数据是抽象出来的,不涉及表中的数据储存。 2. 比较通过试图和基表操作表中数据的异同。 在视图中对数据进行修改不会改变表中储存的数据,而用基表对数 据进行修改则会改变表中储存的数据。 从 SQL 语法上看,两者区别不大,仅在于所使用的是 VIEW 还是 TABLE

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号