索引默认值与数据完整.ppt_第1页
索引默认值与数据完整.ppt_第2页
索引默认值与数据完整.ppt_第3页
索引默认值与数据完整.ppt_第4页
索引默认值与数据完整.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

索引 默认值与数据完整性 2 本章主要内容 索引通过索引提高查询速度 类似于书的目录默认值方便用户的使用数据完整性数据库中的数据在逻辑上的一致性和准确性 主要包括域完整性 实体完整性和参照完整性三个方面 3 6 1索引 索引的定义 按照一定顺序对表中的一列或若干列建立的列值与记录行之间的对应关系表 索引的主要作用快速存取记录保证数据记录的唯一性在使用GROUPBY ORDERBY子句进行数据检索时 利用索引可以减少排序和分组时间 4 6 1索引 没创建索引 数据以堆集方式存储 索引的分类 按索引的组织方式分类 聚集 非聚集 按对应字段唯一性分类 唯一 非唯一 按对应字段个数分类 单一 复合 6 1 1索引的分类 1 聚集索引聚集索引将数据行的键值在表内排序并存储对应的数据记录 使得数据表物理顺序与索引顺序一致 SQLServer2000是按B树组织聚集索引的 B树的叶节点存放数据页信息 一个表只能有一个聚集索引 2 非聚集索引非聚集索引完全独立于数据行的结构 SQLServer2000也是按B树组织非聚集索引的 与聚集索引不同之处在于 非聚集索引B树的叶节点不存放数据页信息 而是存放非聚集索引的键值 并且每个键值项都有指针指向包含该键值的数据行 问题 数据记录的物理存储位置的顺序 非聚集索引的键值次序一个表可以有多个非聚集索引 6 6 1 2系统表sysindexes 当用户创建数据库时 系统将自动创建系统表sysindexes 用户创建的每个索引均将在系统表sysindexes中登记 7 6 1 3索引的创建 1 通过企业管理器建立索引 1 进入企业管理器 打开XSBOOK数据库 2 选择XS表的图标 右击 出现如图所示的快捷菜单 选择 设计表 菜单项 出现所示XS的表设计器界面 3 在XS表设计器界面上选中构成主键的字段 借书证号 然后点击 主键 图标 创建主键 4 为了在XS表中按姓名建立唯一索引 在设计器界面上右击 出现快捷菜单 选择 索引 键 菜单项 进入属性选项页 XS表图标快捷菜单 XS表设计器界面 8 6 1 3索引的创建 5 在 索引 键 属性页点击 新建 按钮 然后 系统将自动创建新索引的名称 用户也可自己定义索引名 在 列名 下选择要创建索引的列 在此选择 姓名 这一列 最多可选择16列 9 6 1 3索引的创建 语法格式 CREATE UNIQUE 是否为唯一索引 CLUSTERED NONCLUSTERED 索引的组织方式 INDEXindex name 索引名称 ON table view column ASC DESC n 指定索引定义依据的对象 WITH n 索引选项 ONfilegroup 指定索引文件所在的文件组 PAD INDEX FILLFACTOR fillfactor IGNORE DUP KEY DROP EXISTING STATISTICS NORECOMPUTE SORT IN TEMPDB 2 利用SQL命令建立索引 10 6 1 3索引的创建 索引选项设置 PAD INDEXFILLFACTOR fillfactorIGNORE DUP KEYDROP EXISTINGSTATISTICS NORECOMPUTESORT IN TEMPDB 11 6 1 3索引的创建 创建索引需要注意的两点 只要满足索引条件 就可以在计算列上创建索引 但计算列必须具有确定性 精确 且不能包含text等数据类型的列 可以在视图上创建索引 索引视图能自动反映出创建索引后对基表数据所作的修改 12 6 1 3索引的创建 创建索引的例子 1 对于JY表 针对借书证号 ISBN号创建索引 CREATEINDEXJY numONJY 借书证号 ISBN 2 根据BOOK表的ISBN列创建唯一聚集索引 CREATEUNIQUECLUSTEREDINDEXbook id indONBOOK ISBN 13 6 1 4索引的删除 1 通过企业管理器界面删除索引 1 进入企业管理器 并与指定的数据库相连接 2 为要删除索引的表打开表设计器 在表设计器中右击 然后从快捷菜单中选择 属性 命令 3 选择 索引 键 选项卡 从 选定的索引 列表中选择要删除的索引 选择 删除 按钮 2 通过SQL命令删除索引 语法格式 DROPINDEX table index view index n 参数含义 table view 索引列所在的表或索引视图 Index 要删除的索引名称 n 表示可以指定多个要删除的索引 功能 从当前数据库中删除一个或多个索引 14 6 2默认值约束和默认值对象 默认值的含义字段默认值定义的两种方式定义表结构时 直接定义默认值约束 先定义默认值对象 然后在定义表字段时绑定 15 6 2 1在表中定义及删除默认值约束 1 默认值约束的定义1 定义表结构时定义字段的默认值约束 语法格式 CREATETABLEtable name 指定表名 column namedatatypeNOTNULL NULL DEFAULTconstraint expression 默认值约束表达式 n 定义列名 该列的数据类型 是否空值及默认值约束 16 6 2 1在表中定义及删除默认值约束 2 修改表添加一个字段的同时定义相应的约束 语法格式 ALTERTABLEtable name 指定表名 ADDcolumn namedatatypeNOTNULL NULLCONSTRAINTconstraint name 指定约束名 DEFAULTconstraint expression WITHVALUES 默认值约束表达式 3 对表中已有字段定义默认值约束 语法格式 ALTERTABLEtable name 指定表名 ADDCONSTRAINTconstraint name 指定约束名 DEFAULTconstraint expression FORcolumn name 默认值约束表达式 17 6 2 1在表中定义及删除默认值约束 2 默认值约束的删除 默认值约束可在企业管理器中删除 如果已知一个默认值约束的约束名 也可在查询分析器中执行SQL命令删除 具体使用 DROPCONSTRAINTdefault name 18 6 2 2默认值对象的定义 使用与删除 默认值对象功能与某个表的某个字段上的默认值约束一样 但默认值对象是独立的数据库对象 但一个默认值对象可用于多个表的不同字段 默认值对象与某个表的某个字段建立联系的过程 称为 绑定 19 6 2 2默认值对象的定义 使用与删除 1 通过企业管理器定义和绑定DEFAULT默认值对象1 通过企业管理器定义DEFAULT默认值对象 1 进入企业管理器 并连接到XSBOOK数据库 展开XSBOOK数据库文件夹 选择 默认 图标右击 出现快捷菜单 如图所示 选择 新建默认 进入默认属性定义窗口 2 在窗口中输入默认值对象名 jss default 及默认值 0 选择 确定 后即定义了一个默认值对象 定义默认值对象的快捷菜单 20 6 2 2默认值对象的定义 使用与删除 2 通过企业管理器将一个字段绑定到一个DEFAULT默认值对象 上面已定义了默认值对象 jss default 下面将XS表中的借书数字段绑定到该对象上 步骤如下 1 在企业管理器中打开XS表设计器 2 将光标移至借书数字段 从默认值对象下拉表中选择其对应的默认值对象即可 如图所示 将字段绑定到默认值对象的窗口 21 6 2 2默认值对象的定义 使用与删除 2 通过SQL语句定义和绑定DEFAULT默认值对象 1 通过SQL命令定义DEFAULT默认值对象定义DEFAULT默认值对象的命令如下 语法格式 CREATEDEFAULTdefault nameASconstant expression 2 通过系统存储过程绑定DEFAULT默认值对象创建默认值对象后 要使其起作用 应使用sp bindefault存储过程将其绑定到列或用户定义数据类型 语法格式 sp bindefault defname default objname object name futureonly futureonly flag 22 6 2 2默认值对象的定义 使用与删除 3 默认值对象的删除 如果要删除一个默认值对象 首先应解除默认值对象与用户定义类型及表字段的绑定关系 然后才能删除该默认值对象 1 利用sp unbindefault解除绑定关系语法格式 sp unbindefault objname object name futureonly futureonly flag 2 删除默认值对象解除默认值对象与用户定义类型及表字段的绑定关系后 即可用DROP语句删除默认值对象 语法格式 DROPDEFAULT default name n 23 6 3数据完整性 数据库中数据在逻辑上的一致性与准确性数据完整性分类域完整性实体完整性参照完整性 24 6 3 1数据完整性的分类 域完整性又称为列完整性 指列数据输入的有效性 针对字段而言 1 域完整性 USEXSBOOKCREATETABLEXS 借书证号char 8 NOTNULL 姓名char 8 NOTNULL 专业名char 12 NOTNULL 性别bitNOTNULL 出生时间smalldatetimeNOTNULL 如下语句定义字段的同时定义约束条件 借书数tinyintCHECK 借书数 0AND借书数 20 NULL 照片imageNULL GO 定义XS表的同时定义借书数字段的约束条件 25 6 3 1数据完整性的分类 2 实体完整性 实体完整性又称为行的完整性 要求表中有一个主键 其值不能为空且能唯一地标识对应的记录 3 参照完整性 参照完整性又称为引用完整性 参照完整性保证主表中的数据与从表中数据的一致性 26 6 3 2域完整性的实现 CHECK约束与RULE对象 1 CHECK约束的定义与删除CHECK约束实际上是字段输入内容的验证规则 表示一个字段的输入内容必须满足CHECK约束的条件 若不满足 则数据无法正常输入 1 通过企业管理器创建与删除CHECK约束 27 6 3 2域完整性的实现 2 利用SQL语句在创建表时创建CHECK约束语法格式 CREATETABLEtable name 指定表名 column namedatatypeNOTNULL NULL DEFAULTconstraint expression 默认值约束表达式 check name CHECK logical expression CHECK约束表达式 n 定义列名 数据类型 标识列 是否空值及定义缺省值约束 CHECK约束 28 6 3 2域完整性的实现 3 利用SQL语句在修改表时创建CHECK约束语法格式 ALTERTABLEtable nameADDCONSTRAINTcheck nameCHECK logical expression 4 利用SQL语句删除CHECK约束CHECK约束的删除可在企业管理器中通过界面删除 在此介绍如何利用SQL命令删除 语法格式 ALTERTABLEtable nameDROPCONSTRAINTcheck name 29 6 3 2域完整性的实现 创建CHECK约束的例子借书证号由8个数字字符构成 并且不等于 00000000 ALTERTABLEXSADDCONSTRAINTcard consCHECK 借书证号like 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 and借书证号 00000000 删除前面建立的CHECK约束ALTERTABLEXSDROPCONSTRAINTcard cons 30 6 3 2域完整性的实现 2 规则对象的定义 使用与删除规则对象的使用方法与缺省值对象的使用步骤类似 1 定义规则对象 2 将规则对象绑定到列或用户自定义类型 1 利用企业管理器定义规则对象并绑定到自定义类型或列对于XSBOOK数据库XS表的借书证号字段 如果规定前2位代表读者类别 输入时每位只能选1 6 后3位为部门编号 输入时每位只能选1 9 最后3位为读者顺序号 输入时顺序号从1开始 31 6 3 2域完整性的实现 规则属性窗口 将规则绑定到字段的窗口 32 6 3 2域完整性的实现 2 利用SQL命令定义规则对象并绑定到自定义类型或列 1 规则对象的定义语法格式 CREATERULEruleAScondition expression 2 将规则对象绑定到自定义类型或列语法格式 sp bindrule rulename rule objname object name futureonly futureonly flag 33 6 3 2域完整性的实现 3 应用举例如下程序创建一个规则 并绑定到XSBOOK数据库XS表的借书证号字段 USEXSBOOKGOCREATERULEnum ruleAS numlike 1 6 1 6 1 9 1 9 1 9 1 9 0 9 0 9 0 9 GOEXECsp bindrule num rule XS 借书证号 GO 34 6 3 2域完整性的实现 4 规则对象的删除删除规则对象的步骤 两个步骤 首先 应使用系统存储过程sp unbindrule解除被绑定对象与规则对象之间的绑定关系 语法格式 sp unbindrule objname object name futureonly futureonly flag 然后 用DROPRULErule name的格式删除相应的规则对象 35 6 3 3实体完整性的实现 1 利用企业管理器创建和删除PRIMARYKEY约束1 利用企业管理器创建PRIMARYKEY约束 如果要对XS表按借书证号字段建立PRIMARYKEY约束 按如下步骤进行 1 选择XS表图标 右击 出现快捷菜单 选择菜单项 设计表 2 在表设计器界面选中 借书证号 字段对应的这一行 选择主键图标 这样在 借书证号 对应的这一行前面 将出现一主键图标 2 利用企业管理器删除PRIMARYKEY约束如下步骤进行 1 进入XS表的表设计器界面 2 选中XS表设计器中主键对应的行 点击工具栏的主键图标 则取消了原来定义的主键 36 6 3 3实体完整性的实现 2 利用企业管理器创建和删除UNIQUE约束1 利用企业管理器创建UNIQUE约束 2 利用企业管理器删除UNIQUE约束 37 6 3 3实体完整性的实现 3 利用SQL命令创建及删除PRIMARYKEY约束或UNIQUE约束1 创建表的同时创建PRIMARYKEY约束或UNIQUE约束 语法格式 CREATETABLEtable name 指定表名 column namedatatype 定义字段 CONSTRAINTconstraint name 约束名 NOTNULLPRIMARYKEY UNIQUE 定义约束类型 CLUSTERED NONCLUSTERED 定义约束的索引类型 n n表示可定义多个字段 38 6 3 3实体完整性的实现 2 通过修改表创建PRIMARYKEY约束或UNIQUE约束 1 创建PRIMARYKEY约束语法格式 ALTERTABLEtable nameADD CONSTRAINTconstraint name PRIMARYKEYCLUSTERED NONCLUSTERED column n 2 创建UNIQUE约束语法格式 ALTERTABLEtable nameADD CONSTRAINTconstraint name UNIQUECLUSTERED NONCLUSTERED column n 3 删除PRIMARYKEY约束或UNIQUE约束语法格式 ALTERTABLEtable nameDROPCONSTRAINTconstraint name n 39 6 3 3实体完整性的实现 例子 对XS表的借书证号码创建主键约束 聚集索引 对身份证号码创建UNIQUE约束 ALTERTABLEXSADDCONSTRAINTxs pkPRIMARYKEYCLUSTERED 借书证号码 GOALTERTABLEXSADDCONSTRAINTxs ukUNIQUENONCLUSTERED 身份证号码 40 6 3 4参照完整性的实现 对两个相关联的表 主表与从表 进行数据插入和删除时 通过参照完整性保证它们之间的数据一致性 参照完整性的实现包含两个内容 利用PrimaryKey或Unique约束定义主表的主码或唯一码 利用ForeignKey定义从表的外码 41 6 3 4参照完整性的实现 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论