SQL Server 2008实用案例教程-7

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

SQLServer实用案例教程(2008版)项目7索引和视图SQLServer实用案例教程(2008版)1234主要内容5需求分析知识点提取项目融合知识点详解自我完善6知识点详解SQLServer实用案例教程(2008版)需求分析为了更好的满足用户对“商品管理系统”的查询需求和功能需求,对查询结果的更好展示是数据库管理者需要提前设计和考虑到的。提高客户端的查询的效率,可以使用为字段设定合理的索引实现;若要保存用户的查询结果,可以为复杂查询创建视图,以方便之后相同或相似的查询操作。本项目将结合以上需求,介绍与之相关的数据库对象。SQLServer实用案例教程(2008版)知识点提取本项目以方便用户查询并得到更有效的查询结果为目的,需要掌握的主要知识点如下:理解索引的概念和管理方法理解视图的概念和作用熟练掌握视图的创建和使用方法SQLServer实用案例教程(2008版)知识点详解7.1索引概述SQLServer实用案例教程(2008版)7.2索引管理7.3视图概述7.4试图管理7.1索引概述数据库中的索引类似于书籍的目录,它以指针形式包含了表中一列或几列组合的新顺序,实现了表中数据的逻辑排序。索引创建在数据表或者视图的字段上,生成索引页,存放于数据库中。SQLServer实用案例教程(2008版)7.1.1索引的概念1.索引的分类在SQLServer中,根据索引的作用和存储方式不同,将索引分为聚集索引和费聚集索引两类。(1)聚集索引聚集索引是指数据表的物理顺序与被创建索引的字段顺序完全相。一个数据表最多只能创建一个聚集索引。默认情况下主键字段自动被创建为聚集索引。聚集索引通常被创建在经常被查询的字段上,以提高查询效率。SQLServer实用案例教程(2008版)7.1.2索引的分类和作用7.1索引概述(2)非聚集索引非聚集索引并不改变数据表的物理顺序,而是生成一个索引文件,用来存放索引顺序的指针地址。系统通过在索引文件中查找到的指针地址与数据表中的数据进行关联,进而显示查询结果。一张数据表最多允许创建254个非聚集索引,多列的复合索引最多允许创建在16个列上。在创建索引时还需要考虑索引的“唯一”属性。被设置唯一索引的字段要求内容不能有重复值。SQLServer实用案例教程(2008版)7.1.2索引的分类和作用7.1索引概述2.索引的作用索引的主要作用是用来提高查询效率。正如我们查看一本书,通过目录浏览或者查看感兴趣的内容要比一页一页的翻看书籍快速而方便。在数据库的查询过程中,对于无索引的数据表,系统会从表的第一行逐行查找到最后一行,从而找出满足条件的记录信息;而对于设置了索引的数据表,系统会先使用索引查找到数据的存储位置,找到后再到数据表中找出对应数据记录的详细信息,当满足查找条件的记录后面出现了不满足条件的记录时,系统将不再继续查找,这样无须扫描全表,从而提高查询效率。SQLServer实用案例教程(2008版)7.1.2索引的分类和作用7.1索引概述SQLServer实用案例教程(2008版)7.1.2索引的分类和作用7.1索引概述例如,在表7-1中查找出成绩为70分的学生信息。在无索引的查询中,系统会从表中第一条记录开始查找,找到满足条件的记录便将其显示出来,直到查找到数据表中最后一条记录结束为止。找到学号为“1202”和“1212”两个同学的记录信息。然而,若在“成绩”字段创建一个索引(非聚集升序),那么首先系统会生成一个索引文件,用来存放为成绩字段创建索引后的新顺序,如表7-2所示,再在表7-2中查找满足条件的成绩,从而找到指针地址为“2”和“5”的信息,然后到表7-1中显示对应位置的详细信息。而当继续查找到指针地址为“3”的不满足查找条件的信息后,系统便停止查找,因为后面再不会有满足条件的信息。比较两种查找方式,索引查找过程的访问记录个数少于全表查找过程,因此索引可以提高查询效率。SQLServer实用案例教程(2008版)7.1.2索引的分类和作用7.1索引概述既然索引可以提高查询效率,是不是为数据表创建越多的索引越好呢?答案是否定的。因为,首先没生成一个索引文件,将占用一部分存储空间,其次,当数据表中数据信息发生改变时,索引文件也应随着记录信息的改变而改变,以满足正确的索引顺序,从而增添了对数据表的维护时间。另外,对于数据类型为bit、image和text的字段不要创建索引。索引最好创建在那些经常用来查询的字段上。SQLServer实用案例教程(2008版)7.1.2索引的分类和作用7.1索引概述由于约束属性的限制,数据表中字段被设置了主键约束或唯一约束时,将为主键约束设置唯一的聚集索引,为唯一约束设置唯一的非聚集索引。若要自行创建索引,可以使用管理器或者T-SQL语言。SQLServer实用案例教程(2008版)7.2.1创建索引7.2索引管理1.使用“管理器”创建索引案例【例7.1】为“商品管理数据库”中“进货信息表”的“进货日期”字段创建非聚集非唯一索引。SQLServer实用案例教程(2008版)7.2.1创建索引7.2索引管理解题在“对象资源管理器”中依次展开“服务器”、“数据库”、“商品管理数据库”、“表”节点,再展开“进货信息表”节点,在该表节点下找到“索引”节点展开,可以看到一个名为“PK_进货信息表(聚集)”的索引已存在,该索引即是该表的主键约束。SQLServer实用案例教程(2008版)7.2.1创建索引7.2索引管理SQLServer实用案例教程(2008版)7.2.1创建索引7.2索引管理图7-1“新建索引”图7-2选择索引字段右键单击“索引”节点,选择“新建索引”命令,如图7-1所示。弹出“新建索引”窗口。在“索引名称”中输入“IX_进货信息表_进货日期”作为索引名,索引类型选择“非聚集”。点击“添加”按钮,弹出“从dbo.进货信息表中选择列”窗口,在列表中选择“进货日期”列,如图7-2所示,单击“确定”按钮,返回“新建索引窗口”,设置好的索引如图7-3所示。单击“确定”按钮,回到“管理器”中,查看名为“IX_进货信息表_进货日期”的索引已创建成功,如图7-4所示,索引属性为“非唯一非聚集”。SQLServer实用案例教程(2008版)7.2.1创建索引7.2索引管理SQLServer实用案例教程(2008版)7.2.1创建索引7.2索引管理图7-3新建索引图7-4索引创建成功说明:若创建基于多列的复合索引,则在图7-2中同时选择多个字段名即可。在图7-3中可以选中“唯一”选项创建唯一索引。创建索引时也可以在图7-3中为索引字段选择排序方式(升序/降序)。SQLServer实用案例教程(2008版)7.2.1创建索引7.2索引管理2.使用T-SQL语言创建索引知识点使用T-SQL语言为数据表添加索引的语法格式如下:create[unique][clustered|nonclustered]index索引名on表名(字段名1,字段名2…)SQLServer实用案例教程(2008版)7.2.1创建索引7.2索引管理说明:create表示创建,index表示索引。“索引名”需符合命名规则,且不能与已存在的索引重名。可选项unique表示唯一属性,clustered表示聚集属性,nonclustered表示非聚集属性。不加这两个关键字,默认为非聚集、非唯一索引。on关键字后面跟随被创建索引的数据表名,设置索引的字段放在小括号内,如创建复合索引则字段名间用逗号间隔,最后一个子弹后不加逗号。SQLServer实用案例教程(2008版)7.2.1创建索引7.2索引管理案例【例7.2】为“商品管理数据库”中“商品类型表”的“商品类型名”字段创建一个名为“IX_商品类型表_商品类型名”的非聚集聚集唯一索引。SQLServer实用案例教程(2008版)7.2.1创建索引7.2索引管理解题在“管理器”中新建一个查询窗口,输入代码如下:use商品管理数据库gocreateuniquenonclusteredindexIX_商品类型表_商品类型名on商品类型表(商品类型名)goSQLServer实用案例教程(2008版)7.2.1创建索引7.2索引管理解题在“管理器”中新建一个查询窗口,输入代码如下:use商品管理数据库gocreateuniquenonclusteredindexIX_商品类型表_商品类型名on商品类型表(商品类型名)go说明:表示非聚集的nonclustered关键字可以省略。SQLServer实用案例教程(2008版)7.2.1创建索引7.2索引管理点击“分析”按钮,无语法错误后点击“执行”按钮,得到“命令成功完成”的提示信息,表示索引创建成功。刷新“对象资源管理器”中“商品类型表”节点下的“索引”节点,查看索引已创建,如图7-5所示。SQLServer实用案例教程(2008版)7.2.1创建索引7.2索引管理图7-5查看索引对数据表成功创建索引之后或在准备创建索引之前为避免重复创建,可以先对数据表的索引信息进行查看。查看索引可以使用“管理器”和T-SQL语言两种方式。SQLServer实用案例教程(2008版)7.2.2查看索引7.2索引管理1.使用“管理器”查看索引正如【例7.1】中用到的查看索引的方法,在“管理器”中查看索引,需依次展开“对象资源管理器”中的“服务器”、“数据库”、“被查看的数据库名”、“表”、“被查看的数据表名”、“索引”节点,查看表中现存索引名称和属性。右键点击某一索引名称,从弹出的菜单中选择“属性”命令,即可打开“索引属性”窗口,以查看索引的详细信息。SQLServer实用案例教程(2008版)7.2.2查看索引7.2索引管理2.使用T-SQL语言查看索引可以使用T-SQL语言中的系统存储过程查看索引信息。系统存储过程sp_helpindex可以查看指定数据表的索引信息。SQLServer实用案例教程(2008版)7.2.2查看索引7.2索引管理知识点使用T-SQL语言中的系统存储过程查看索引信息的语法格式如下:execsp_helpindex数据表名SQLServer实用案例教程(2008版)7.2.2查看索引7.2索引管理案例【例7.3】使用T-SQL语言查看“商品类型表”的索引信息。SQLServer实用案例教程(2008版)7.2.2查看索引7.2索引管理解题在“管理器”中新建一个查询窗口,输入代码如下:use商品管理数据库goexecsp_helpindex商品类型表goSQLServer实用案例教程(2008版)7.2.2查看索引7.2索引管理点击“分析”按钮,无语法错误后点击“执行”按钮,得到如图7-6所示执行结果。SQLServer实用案例教程(2008版)7.2.2查看索引7.2索引管理图7-6T-SQL语言查看索引说明:“index_name”表示索引名称,“index_description”表示索引类型,“index_key”表示索引创建于那些字段。结果中名为“IX_商品类型表_商品类型名”的索引是【例7.2】所创建的基于“商品类型名”字段的非聚集唯一索引。结果中名为“PK_商品类型表”的索引是基于“商品类型编号”字段所设置的主键约束。设置主键约束的同时系统会自动创建索引,根据主键约束的特性,该索引为唯一的聚集索引。两个索引均创建于主文件组。SQLServer实用案例教程(2008版)7.2.2查看索引7.2索引管理对索引的修改可以分为修改索引名称和修改索引属性两部分,其中修改索引属性又可分为修改依赖于约束的索引和不依赖于约束的索引两部分。SQLServer实用案例教程(2008版)7.2.3修改索引7.2索引管理1.修改索引名称(1)使用“管理器”修改索引名称在“对象资源管理器”中依次展开“服务器”、“数据库”、“被查看的数据库名”、“表”、“被查看的数据表名”、“索引”节点,右键单击被修改索引,在弹出的菜单中选择“重命名”命令,改好后回车确定即可。SQLServer实用

1 / 127
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功