第6章索引与数据完整性-Indexof.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.参照完整性 码:又称为“键”,是能唯一标识表中记录的字段或字段组合。如果一个表有多个码,可选其中一个作为主键(主码),其余的称为候选键。 外码:如果一个表中的一个字段或若干个字段的组合是另一个表的码,则称该字段或字段组合为该表的外码(外键)。例如,XSB和CJB表的对应关系如表6.1和表6.2所示。 如果定义了两个表之间的参照完整性,则要求: (1)从表不能引用不存在的键值。例如,CJB表中行记录出现的学号必须是XSB表中已存在的学号。 (2)如果主表中的键值更改了,那么在整个数据库中,对从表中该键值的所有引用要进行一致的更改。例如,如果对XSB表中的某一学号修改,则CJB表中所有对应学号也要进行相应的修改。 (3)如果主表中没有关联的记录,则不能将记录添加到从表。 如果要删除主表中的某一记录,则应先删除从表中与该记录匹配的相关记录。 如果PRIMARY KEY约束是由多列组合定义的,则某一列的值可以重复,但PRIMARY KEY约束定义中所有列的组合值必须唯一。 如果要确保一个表中的非主键列不输入重复值,则应在该列上定义唯一约束(UNIQUE约束)。 例如,对于PXSCJ数据库中的XSB表,“学号”列是主键,在XSB表中增加一列“身份证号码”,可以定义一个UNIQUE约束来要求表中“身份证号码”列的取值是唯一的。 PRIMARY KEY约束与UNIQUE约束的主要区别如下: (1)一个数据表只能创建一个PRIMARY KEY约束,但一个表中可根据需要对表中不同的列创建若干个UNIQUE约束。 (2)PRIMARY KEY字段的值不允许为NULL,而UNIQUE字段的值可取NULL。 (3)一般在创建PRIMARY KEY约束时,系统会自动产生索引,索引的默认类型为簇索引。在创建UNIQUE约束时,系统会自动产生一个UNIQUE索引,索引的默认类型为非簇索引。 1.利用界面方式创建和删除PRIMARY KEY约束 (1)创建PRIMARY KEY约束。 如果要对XSB表按学号建立PRIMARY KEY约束,则可以按第3章创建表的第3步中所介绍的设置主键的相关步骤进行。 当创建主键时,系统将自动创建一个名称以“PK_”为前缀、后跟表名的主键索引,系统自动按聚集索引方式组织主键索引。 (2)删除PRIMARY KEY约束。 如果要删除表XSB中对“学号”字段建立的PRIMARY KEY约束,可按如下步骤进行:在对象资源管理器中选择dbo.XSB表图标,右击鼠标,在弹出的快捷菜单中选择“设计”菜单项,进入“表设计器”窗口。选中“XSB表设计器”窗口中主键所对应的行,右击鼠标,在弹出的快捷菜单中选择“删除主键”菜单项即可。 2.利用界面方式创建和删除UNIQUE约束 (1)创建UNIQUE约束。 如果要对XSB表中的“学号”列创建UNIQUE约束,以保证该列取值的唯一性,可按以下步骤进行: 进入XSB表的“表设计器”窗口,选择“学号”属性列并右击鼠标,在弹出的快捷菜单中选择“索引/键”菜单项,打开“索引/键”窗口。 在窗口中单击“添加”按钮,并在右边的“标识”属性区域的“名称”栏中输入唯一键的名称(用系统默认的名或重新取名)。在“常规”属性区域的“类型”栏中选择类型为“唯一键”,如图6.3所示。 在“常规”属性区域中的“列”栏后面单击 形状的按钮,选择要创建索引的列。在此选择“学号”列,并设置排列顺序。单击“关闭”按钮,然后保存修改即可。 图6.3 创建唯一键 (2)删除UNIQUE约束。 打开如图6.3所示的“索引/键”窗口,选择要删除的UNIQUE约束,单击左下方的“删除”按钮,单击“关闭”按钮,保存表的修改即可。 3.利用“T-SQL命令”创建及删除PRIMARY KEY约束或UNIQUE约束 利用T-SQL命令可以使用两种方式定义约束:作为列的约束或作为表的约束。可以在创建表或修改表时定义。 (1)在创建表的同时创建PRIMARY KEY约束或UNIQUE约束。 语法格式: CREATE TABLE table_name ( { 列定义 column_constraint}[,…n] [ table_constraint ] [ ,...n ] ) 其中,column_constraint为列的约束,table_constraint为表的约束。 column_constraint ::= /*定义列的约束*/ [ CONSTRAINT constraint_name ] { { PRIMARY KEY | UNIQUE } /*定义主键与UNIQUE键*/ [ CLUSTERED | NONCLUSTERED ] /*定义约束的索引类型*

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档