欢迎来到天天文库
浏览记录
ID:20069489
大小:225.00 KB
页数:58页
时间:2018-10-09
《第7章 索引和视图》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章索引和视图本章学习目标掌握索引的创建、管理、维护和删除等操作掌握视图的创建、修改、使用和删除等操作学会使用视图查询、修改、更新和删除数据一、索引1、索引基础知识索引的概念和作用索引是对数据库表中一个或多个列(例如Student表的“学号”列)的值进行排序的结构。索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。索引的分类SQLServer2005中的索引分为3类,分别是:聚集索引非聚集索引唯一索引聚集索引聚集索引会对表和物理视图进行排序,所以这种索引对查询非常有效,在表和视图中只能有一个聚集索引。当建立主键约束时,如果表中没有聚集索引,SQLS
2、erver2005会用主键列作为聚集索引键。也可以手动在表的任何列或列的组合上建立索引,但在实际应用中,一般为定义成主键约束的列建立聚集索引。返回非聚集索引非聚集索引不会对表和视图进行物理排序。如果表或视图中不存储聚集索引,则表或视图是未排序的。在表和视图中最多可以建立250个非聚集索引,或者249个非聚集索引和一个聚集索引。返回唯一索引唯一索引确保索引键不包含重复的值,因此,表或视图中的每一行在某种程度上是唯一的。例如,如果在表中的“姓名”字段上创建了唯一索引,则以后输入的姓名将不能同名。返回2、建立索引创建表或视图的索引的方法有两种:使用对象资源管理器和T-SQL语句。使用“
3、对象资源管理器”创建索引具体的方法请参考本书第7章使用T-SQL语句创建索引T-SQL语句创建索引的基本语法如下:CREATE[UNIQUE][CLUSTERED
4、NONCLUSTERED]INDEXindex_nameON(column[ASC
5、DESC][,...n])[INCLUDE(column_name[,...n])][WITH([,...n])]属性和参数说明:UNIQUE:建立唯一索引。CLUSTERED:建立聚集索引。NONCLUSTERED:建立非聚集索引。index_name:索引名称,索引名
6、称在表或视图中必须唯一,但在数据库中不必唯一。object:表名或视图名。column:索引所基于的一列或多列。ASC
7、DESC:确定特定索引列的升序或降序排序方向。默认值为ASC(升序)。INCLUDE(column_name[,...n]):指定要添加到非聚集索引的叶级别的非键列。非聚集索引可以唯一,也可以不唯一。relational_index_option:索引属性。如DROPINDEXix_Student表示先删除已经存在的索引,因为索引名称不能重复,否则会出错。【例7.1】使用T-SQL语句在CJGL数据库中的Student表上创建名为IX_Student的唯一、聚集
8、索引,该索引基于表中的“学号”列。T-SQL脚本语句如下:USECJGLGOCREATEUNIQUECLUSTEREDINDEXIX_StudentONStudent(StuNo)GO注意:①UNIQUE和CLUSTERED之间不能用“,”号②“学号”列中不能有重复值③关键字的大小写不影响结果④只有表的所有者才能执行CREATEINDEX语句⑤更多请参考本书第页3、管理索引管理索引的操作包括:显示索引信息重命名索引删除索引其他显示索引在索引创建完成后,可以查看索引的相关信息,包括查看索引的名称、类型、索引键列等。查看索引信息有两种方法:一种是用“对象资源管理器”进行显示;另一种是
9、用T-SQL的相关语句进行显示。使用“对象资源管理器”显示索引在“对象资源管理器”中找到相应的表,展开“索引”前面的“+”号后,会列出已经存在的索引列表,可以用鼠标右键单击其中一个索引名称,在打开的快捷菜单中选择“属性”,即可弹出相应的“索引”属性窗口,进行查看相关索引的信息。如下页图所示:使用T-SQL语句显示索引使用T-SQL语句显示相关索引信息,实际是调用了系统自定义的存储过程sp_helpindex(存储过程的相关知识请参看本书第9章的内容)。【例7.2】使用T-SQL语句显示CJGL数据库中Student表的索引信息。在查询窗口中使用的T-SQL语句如下:USECJGL
10、GOEXECsp_helpindexStudentGO执行结果如图所示返回重命名索引重命名索引和显示索引信息一样,同样有两种方法:利用“对象资源管理器”和T-SQL命令。使用“对象资源管理器”重命名索引此种方法重命名索引比较简单,和重命名表名的操作一样。使用T-SQL语句重命名索引利用T-SQL命令重命名索引,同样也是调用了系统自定义的存储过程sp_rename。其基本语法如下:EXECsp_rename'table.old_index','new_index'参数说明:tabl
此文档下载收益归作者所有