电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

sqlserver2008数据库应用与开发教学课件作者李新德第六章

59页
  • 卖家[上传人]:E****
  • 文档编号:102551908
  • 上传时间:2019-10-03
  • 文档格式:PPT
  • 文档大小:1.96MB
  • / 59 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第六章 索引与数据完整性,项目八 索引的创建和删除 项目九 数据约束和数据完整性,返回,项目八 索引的创建和删除,一、创建索引的原因 当查阅某本书的某个章节时,为了提高查阅速度,不是从书的第一页开始顺序查找,而是首先找到书的目录索引,找到需要的章节在目录中的页码,然后根据这一页码直接找到需要的章节。如果把表的数据看作书的内容,则索引就是书的目录。书的目录指向了书的内容(通过页码),同样,索引是表的关键值,它提供了指向表中行(记录)的指针。目录中的页码是到达书的内容的直接路径,而索引也是到达表数据的直接路径,它使人们可更高效地访问数据。本项目利用索引快速访问数据库表中的特定信息,并为选定的表创建、编辑或删除索引。,下一页,返回,项目八 索引的创建和删除,二、索引的概念 索引是以表为基础的数据库对象,保存着表中排序的索引列,并且记录了索引列在数据表中的物理存储位置,实现了表中的数据的逻辑排序,提高了SQL Server 系统的性能,加快了数据的查询速度,减少了系统的响应时间。它是由除存放表的数据页面以外的索引页面组成的。每个索引页面中的行都包含逻辑指针,通过该指针可以直接检索到数据,这会加

      2、速物理数据的检索速度。对表中的列(字段)是否创建索引以及创建何种索引,对检索的速度会有很大的影响。创建了索引的列几乎是立即响应,而未创建索引的列就需要等很长时间。,上一页,下一页,返回,项目八 索引的创建和删除,因为对于未创建索引的列,SQL Server 需要逐行进行搜索,这种搜索耗费的时间直接同表中的数据量成正比。当数据量很大时,耗费的时间是难以想象的。 三、创建索引应考虑的主要因素 (1) 如果一个表建有大量索引,其会影响insert、update 和delete 语句的性能,因为在表中的数据更改时,所有索引都需进行适当的调整。 (2) 覆盖的查询可以提高性能。覆盖的查询是指查询中所有指定的列都包含在同一个索引中。创建覆盖一个查询的索引可以提高性能,因为该查询的所有数据都包含在索引自身当中。,上一页,下一页,返回,项目八 索引的创建和删除,(3) 对小型表进行索引可能不会产生优化效果,因为SQL Server 在遍历索引以搜索数据时,花费的时间可能会比简单的表扫描还长。 四、索引的分类 1. 聚集索引 聚集索引会对表和视图进行物理排序,所以这种索引非常有效,每个表或视图只能有一个

      3、聚集索引。将表中的记录在物理数据页中的位置按索引字段值重新排序,再将重排后的结果写回磁盘。如果表中没有聚集索引,SQL Server 会用主键列作为聚集索引。在语句“createindex”中,使用“clustered”选项建立聚集索引。,上一页,下一页,返回,项目八 索引的创建和删除,创建时应注意: (1) 每个表只能有一个聚集索引; (2) 表中的物理顺序和索引中的物理顺序是相同的; (3) 保证有足够的空间创建聚集索引。 可考虑将聚集索引用于下面几种情况: (4) 包含大量非重复值的列; (5) 使用下列运算符返回一个范围值的查询:between、=、和=; (6) 被连续访问的列;,上一页,下一页,返回,项目八 索引的创建和删除,(7) 返回大型结果集的查询; (8) 经常被使用连接或group by 子句的列。 2. 非聚集索引 非聚集索引与书中的索引类似,数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置。非聚集索引不会对表或视图进行物理排序,具有与表的数据完全分离的结构,其由数据行指针和一个索引值构成。考虑将非聚集索引用于下面的情况: (1) 包含大

      4、量非重复值的列,如姓氏和名字的组合(如果聚集索引用于其他列)。,上一页,下一页,返回,项目八 索引的创建和删除,(2) 不返回大型结果集的查询。 (3) 返回精确匹配的查询的搜索条件(where 子句)中经常使用的列。 (4) 在特定的查询中覆盖一个表中的所有列。 3. 唯一索引 唯一索引(unique index)表示表中任何两行记录的索引值都不相同,与表的主键类似。 它可以确保索引列不包含重复的值。在多列唯一索引的情况下,该索引可以确保索引列中每个值组合都是唯一的。如果该索引列上已经存在重复值,系统就会报错。,上一页,下一页,返回,项目八 索引的创建和删除,五、合理使用索引 选择创建不同的索引时要考虑实际情况,在不同情况下创建聚集索引还是非聚集索引可参考表61。 任务 索引的创建和删除 【任务准备】 1. 使用TSQL 语言创建索引的方法 只有表或视图的所有者才能为表创建索引,可以随时创建索引,无论表中是否有数据。 创建索引是通过create index 语句来完成的,其语法格式如下:,上一页,下一页,返回,项目八 索引的创建和删除,createuniqueclustered |

      5、nonclusteredindex 索引名 on表|视图(列asc|desc,n) 各选项的含义如下: (1) unique 为表或视图创建唯一索引(不允许存在索引值相同的两行)。视图上的聚集索引必须是unique 索引。 (2) clustered 创建聚集索引。如果没有指定clustered,则创建非聚集索引。具有聚集索引的视图称为索引视图。必须先为视图创建唯一聚集索引,然后才能为该视图定义其他索引。,上一页,下一页,返回,项目八 索引的创建和删除,(3) nonclustered 创建一个指定表的逻辑排序的对象,即非聚集索引。每个表最多可以有249 个非聚集索引(无论这些非聚集索引的创建方式如何,是使用primary key 和unique 约束隐式创建,还是使用create index 显式创建)。 (4) 索引名:在表或视图中必须唯一,但在数据库中不必唯一。索引名必须遵循标识符规则。 (5) 表:包含要创建索引的列的表。可以选择指定数据库和表所有者。 (6) 视图:要建立索引的视图的名称。,上一页,下一页,返回,项目八 索引的创建和删除,(7) 列:应用索引的列。指定两个或多

      6、个列名,可为指定列的组合值创建组合索引。在table 后的圆括号中列出组合索引中要包括的列(按排序优先级排列)。 (8) asc| desc确定具体某个索引列的排序方向升序(asc)或降序(desc),默认设置为asc(升序)。 (9) n 表示可以为特定索引指定多个列的占位符。 2. 使用TSQL 语言删除索引的方法 从当前数据表中删除索引使用drop index 语句,其语法格式如下:,上一页,下一页,返回,项目八 索引的创建和删除,drop index 表索引名 | 视图索引名,n 其中,表索引名和视图索引名是索引列所在的表或索引视图;index 是要除去的索引名称。 索引名必须符合标识符的规则。n 表示可以指定多个索引的占位符。 【任务实施】 一、索引的界面操作 (1) 通过SQL Server 2008 界面操作为表tb_student 中的“studentid”(学号)字段创建聚集索引方法如下:,上一页,下一页,返回,项目八 索引的创建和删除, 打开“SQL Server Management Studio”窗口,选择数据库STUDY 中的表tb_student,然后在“索

      7、引”处单击鼠标右键,在打开的快捷菜单中执行“新建索引”命令,打开“新建索引”窗口,如图61 所示。 在“索引名称”文本框中输入索引名称,这里输入“studentID”,如图62 所示。 单击“添加”按钮,打开“从dbo.tb_student中选择列”对话框,如图63 所示。 设置其他选项,例如是创建聚集索引还是创建非聚集索引、是否创建唯一索引等。,上一页,下一页,返回,项目八 索引的创建和删除, 在“选择页”列表中,选择“选项”选项,可打开“选项”选项卡。在此选项卡中,可以设置一些其他选项。 完成后,单击“确定”按钮,即可创建一个新的索引。 (2) 通过SQL Server 2008 界面操作查看索引的方法如下: 在“对象资源管理器”窗口里,选择数据库STUDY 中的表tb_student,然后在“索引”处单击鼠标右键,在打开的快捷菜单中执行“属性”命令,出现“属性索引”窗口,如图64 所示。 在“索引属性”窗口的“常规”页中,可以查看或修改所选择的表或视图的索引的类型等属性信息。,上一页,下一页,返回,项目八 索引的创建和删除, 在“索引属性”窗口的“选项”页中,可以查看或修改所选索

      8、引的属性。 在“索引属性”窗口的“包含性列”页中,可以修改以非键列的形式包含在非聚集索引中的列集。 在“索引属性”窗口的“存储”页中,可以查看或修改所选索引的文件组或分区方案属性。此页仅对聚集索引可用。 在“索引属性”窗口的“空间”页中,可以查看或修改索引的空间属性。修改任何空间属性后,将会删除并重新创建该空间索引。 在“索引属性”窗口的“碎片”页中,可以查看索引碎片的状态和重新组织索引。,上一页,下一页,返回,项目八 索引的创建和删除,(3) 通过SQL Server 2008 界面操作删除索引的方法如下: 打开“SQL Server Management Studio”窗口,选择数据库STYDY 中的表tb_student,在要删除的索引上单击鼠标右键,如图65 所示。 出现“删除对象”对话框,确认无误后,单击“确定”按钮,完成删除操作。 (4) 通过SQL Server 2008 界面操作为表tb_student 中的“name”(姓名)字段创建非聚集索引方法如下: 详见【任务实施】“一、索引的界面操作”的步骤(1)。,上一页,下一页,返回,项目八 索引的创建和删除, 在“索引名

      9、称”文本框中输入索引名称,这里输入“name1”,如图66 所示。 单击“添加”按钮,打开“从dbo.tb_student中选择列”对话框,如图67 所示。 其余步骤详见【任务实施】“一、索引的界面操作”的步骤(4)、(5)、(6)。 二、索引的语法使用 (1) 通过TSQL 语言为表tb_course 的“coursename”(课程名)”列创建索引。,上一页,下一页,返回,项目八 索引的创建和删除,use STUDY go create index course_name on tb_course(coursename) (2) 创建聚集索引,根据表tb_student 中“studentid(学号)”列创建唯一聚集索引。 create unique clustered index student_name on tb_student(studentid) (3) 删除STUDY 数据库中表tb_course 中一个索引名为“course_name”的索引。 drop index tb_course.course_name,上一页,返回,项目九 数据约束和数据完整性,一、数据的约束 SQL Server 2008 提供了多种对表数据的强制约束,主要有以下几种。 1. primary key(主键)约束 在表中定义一个主键,唯一地标识表中的行,一个表有且只有一个主键约束。也就是说,在数据表中不能存在主键值相同的两行数据,而且位于主键约束下的数据应使用确定的数据,不能输入NULL 来代替确定的数据。在管理数据时,应确保每个数据表都拥有自己唯一的主键,从而实现数据的实体完整性。,下一页,返回,项目九 数据约束和数据完整性,在SQL Server 2008 中,主键约束的创建方式有两种: (1) 作为表定义的一部分在创建表时创建; (2) 对没有主键的表添加主键约束。 2. unique 约束 unique 约束强制执行值的唯一性。对于unique 约束中的列,表中不允许有两行包含相同的非空值。 3. foreign key(外键)约束 用于强制实现表之间的参照完整性,外键必须和主表的主键或唯一键对应,外键约束不允许为空值。 4

      《sqlserver2008数据库应用与开发教学课件作者李新德第六章》由会员E****分享,可在线阅读,更多相关《sqlserver2008数据库应用与开发教学课件作者李新德第六章》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.