实验5 索引和视图

上传人:爱** 文档编号:101591050 上传时间:2022-06-05 格式:DOC 页数:5 大小:53.50KB
返回 下载 相关 举报
实验5 索引和视图_第1页
第1页 / 共5页
实验5 索引和视图_第2页
第2页 / 共5页
实验5 索引和视图_第3页
第3页 / 共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修改视图的方法。 二、实验准备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 VIEW的用法。 三、实验内容 0. 创建studentsdb数据库及其相应表,并录入数据。 启动查询分析器,运行下面链接的代码即可。 创建数据库代码 1.分别使用企业管理器和Transact-SQL语句为studentsdb数据库的student_info表格和curriculum表创建主键索引。 createindexstudent_idxonstudent_info(学号)createindexcurriculum_idxoncurriculum(课程编号)2.使用企业管理器按curriculum表的课程编号列创建唯一性索引。 createuniqueindexcurri_idxoncurriculum(课程编号)3.分别使用企业管理器和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。CREATE INDEX grade_index ON grade(分数) createindexgrade_indexongrade(分数)4.为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。 CREATE UNIQUE INDEX grade_id_c_ind ON grade(学号,课程编号) createuniqueindexgrade_id_c_indongrade(学号,课程编号)5.分别使用企业管理器和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。 sp_helpindex gradesp_helpindexgrade6.使用企业管理器的“向导”工具对grade表创建一个聚集索引和唯一索引。 7.使用系统存储过程sp_rename将引索grade_index更名为grade_ind。 sp_rename grade.grade_index,grade_ind, INDEX sp_renamegrade.grade_index,grade_ind,index8. 分别使用企业管理器和Transact-SQL语句DROP INDEX删除索引grade_ind。再次使用系统存储过程sp_helpindex查看grade表上的索引信息。 DROP INDEX grade.grade_ind dropindexgrade.grade_ind9. 分别使用企业管理器和系统存储过程sp_fulltext_database为studentsdb数据库启用全文索引。 sp_fulltext_databasestudent_info(学号)10. 分别使用企业管理器和系统存储过程sp_fulltext_catalog为studentsdb数据库建立全文目录,命名为FT_stu。为student_info表建立全文索引数据元。 sp_fulltext_catalogFT_stu,createsp_fulltext_tablestudent_info,create,FT_stu,PK_student_info execute sp_fulltext_catalog FT_stu,create exec sp_fulltext_tablestudent_info,create,FT_stu,PK_student_info 在建立全文索引数据元之前保证已为student_info表建立了PK_student_infl索引。 11. 为student_info表设置全文索引列名为家庭住址。在全文目录中注册该表,激活表的全文检索能力。 execute sp_fulltext_columnstudent_info,家庭住址,add execute sp_fulltext_tablestudent_info,activate executesp_fulltext_columnstudent_info,家庭住址,addexecutesp_fulltext_tablestudent_info,activate12. 填充全文目录,检查全文目录填充情况。 execute sp_fulltext_catalog FT_stu,start_full While (fulltextcatalogproperty(FT_stu,populateStatus)0) BEGIN waitfor delay0;0;30-如果全文目录正处于填充状态,则等待30s后再检测一次 END executesp_fulltext_catalogFT_stu,start_fullWhile (fulltextcatalogproperty(FT_stu,populateStatus)0)BEGINwaitfordelay;0;30-如果全文目录正处于填充状态,则等待s后再检测一次END13. 在student_info表中,分别使用CONTAINS和FREETEXT函数通过全文目录检索家庭住址包含25号的记录。 SELECT姓名,家庭住址 FROM student_info WHERE CONTAINS(家庭住址,25号) SELECT姓名,家庭住址FROMstudent_infoWHERECONTAINS(家庭住址,号)14. 使用系统存储过程从studentsdb数据库中禁用全文检索。 15. 在studentsdb数据库中,以student_info表为基础,使用企业管理器建立名为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。 createviewv_stu_iasselect姓名,性别,家庭住址fromstudent_info16.在studentsdb数据库中,使用Transact-SQL语句 CREATE VIEW 建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为0003的学生情况。 (1)createviewv_stu_casselectstudent_info.学号,姓名,grade.课程编号fromstudent_info,grade,curriculumwherestudent_info.学号=grade.学号andgrade.课程编号=curriculum.课程编号(2)select*fromv_stu_cwhere学号=000317.基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图中具有所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g查询学号为0001的学生的所有课程和成绩,如图1-9所示。 学号姓名课程名称分数 0001刘卫平大学计算机基础80 0001刘卫平C语言程序设计90 0001刘卫平SQL Server数据库870001刘卫平英语86 0001刘卫平高等数学78 图1-9 学号为0001的学生的视图信息 createviewv_stu_gasselectstudent_info.学号,姓名,curriculum.课程名称,grade.分数fromstudent_info,grade,curriculumwherestudent_info.学号=grade.学号andgrade.课程编号=curriculum.课程编号select*fromv_stu_g18.分别使用企业管理器和Transact-SQL语句修改视图v_stu_c,使之显示学号、姓名、每个学生所学课程数目。alterviewv_stu_c(课程编号)asselectCOUNT(课程编号)fromgradegroupby学号19.使用Transact-SQL语句ALTER VIEW 修改视图v_stu_i,使其具有列名学号、姓名、性别。 ALTER VIEW v_stu_i(学号,姓名,性别)AS SELECT 学号,姓名,性别 FROM student_info alterviewv_stu_i(学号,姓名,性别)asselect学号,姓名,性别fromstudent_info20.使用系统存储过程sp_rename将视图v_stu_i更名为v_stu_info。 sp_rename v_stu_i,v_stu_info sp_renamev_stu_i,v_stu_info21.利用视图v_stu_i为student_info表添加一行数据:学号为0015、姓名为陈婷、性别为女。 insertintov_stu_infovalues(0015,陈婷,女)22.利用视图v_stu_i删除学号为0015的学生记录。 deletefromv_stu_infowhere学号=001523.利用视图v _stu_g修改姓名为刘卫平的学生的高等数学的分数为84。 updatev_stu_gset分数=84where姓名=刘卫平and课程名称=高等数学24使用Transact-SQL语句DROP VIEW 删除视图v_stu_c和v_stu_g。 dropviewv_stu_c,v_stu_g四、实验思考1.是否可以通过视图v_stu_g修改grade表中学号列数据?不可以。因为学号列在表student_info中有主键约束,即被设为主键,修 改语句将因为违反主键约束而被终止。2.比较通过试图和基表操作表中数据的异同。相同点:试图作为一个查询结果与基表具有相似的结构,对视图的操作与对表的操作是一样的,通过视图可以完成某些和基表相同的一些数据操作,如,数据的检索、添加。删除和修改。不同点:视图是一种数据库对象,是从一个或多个表或视图中导出的虚拟表。视图所对应的数据并不储存在视图中,而是储存在所引用的基表中,视图的结构和数据是对基表进行查询的结果。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!