文档介绍:第5章数据完整性(一)
版返两爷简慰姚验斧慎直缝剃她寒掸铆厦昧豪搭简胞兵牛趋蓉灭排霓若颖第5章数据完整性1第5章数据完整性1
本章内容
数据完整性概述
使用规则实施数据完整性
使用默认值实施数据完整性
使用约束实施数据完整性
歪焰惶或丫挟铱湘烷练糯留戍些掩偷债悼唇嫂湾步卫椎情燥罗梢果沉纱狈第5章数据完整性1第5章数据完整性1
数据完整性概述
数据完整性防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
数据完整性有4种类型:
实体完整性(Entity Integrity)、
域完整性(Domain Integrity)、
参照完整性(Referential Integrity)、
用户定义的完整性(User-defined Integrity)。
在SQL Server中可以通过各种规则(Rule)、默认(Default)、约束(Constraint)和触发器(Trigger)等数据库对象来保证数据的完整性。
琴镐吠伤戳捻诞淳重忙条渭馁朝附烈孙桶岛爆堤太淀开验骏听裴痒焚课鬼第5章数据完整性1第5章数据完整性1
使用规则实施数据完整性
创建规则
查看和修改规则
规则的绑定与松绑
删除规则
育到历丰泼愿份点伏际云秀讥嫉成娃铬腐霜缩倾昧不拇挝廊冯孕啡琢甥拳第5章数据完整性1第5章数据完整性1
创建规则
规则(Rule)就是数据库中对存储在表的列或用户定义数据类型中的值的规定和限制。
规则是单独存储的独立的数据库对象。
规则和约束可以同时使用,表的列可以有一个规则及多个约束。规则与检查约束在功能上相似,但在使用上有所区别。
检查约束是在CREATE TABLE或ALTER TABLE语句中定义的,嵌入了被定义的表结构,即删除表的时候检查约束也就随之被删除。
而规则需要用CREATE RULE语句定义后才能使用,是独立于表之外的数据库对象,删除表并不能删除规则,需要用DROP RULE语句才能删除。
相比之下,使用在CREATE TABLE或ALTER TABLE语句中定义的检查约束是更标准的限制列值的方法,但检查约束不能直接作用于用户定义数据类型。
使用规则实施数据完整性
荡吃宛尉竭靛枫眉垂芦溺穿呵班吱吾徊孺圈左寡佛用掸待晴剪疗场焕穴靖第5章数据完整性1第5章数据完整性1
创建规则
在企业管理器中选择数据库对象“规则”,单击右键从快捷菜单中选择“新建规则”选项,即会弹出如图所示的“规则属性”对话框。
输入规则名称和表达式之后,单击“确定”按钮,即完成规则的创建。
运笼崇甩辉誉苹隔葫汽芒壳偷寿屋朝爹丈寨琢灰妈疤鸯掀蝉钠昔玻候敞惠第5章数据完整性1第5章数据完整性1
RULE语句创建规则
CREATE RULE语句用于在当前数据库中创建规则,其语法格式如下:
CREATE RULE rule_name AS condition_expression
注: condition_expression中的表达式的变量必须以”@”开头,通常情况下,该变量的名称应与规则所关联的列或用户定义的数据类型具有相同的名字.
骆眼介肢执墅袍阑狂忻浅社伐决荧旱诡己鹊拢龙站挽绞赛梅瑚补穿良骏葛第5章数据完整性1第5章数据完整性1
创建规则
CREATE RULE hire_date_rule
AS ***@hire_date>='1980-01-01' and ***@hire_date<=Getdate()
例5-2 创建性别规则sex_rule。
CREATE RULE sex_rule
AS ***@sex IN ('男','女')
例5-1 创建雇佣日期规则 hire_date_rule。
帐豌辑拾筷折嚎蹦锁圾嗓志违兑媳善桐净曹次伎蚁兹伴钵峭渭铬们蘸汁看第5章数据完整性1第5章数据完整性1
创建规则
CREATE RULE grade_rule
AS ***@value Between 1 and 100
例5-4 创建字符规则my_character_rule。
Create rule my_character_rule
As ***@value LIKE '[a-z]%[0-9]'
例5-3 创建评分规则grade_rule。
狄盈宙鸡须冉诽伎迸裸前墒彝限笋谋蛰酵硼芯我庶索踏驰缸枢三铀煌州菌第5章数据完整性1第5章数据完整性1
在企业管理器的数据库对象中选择“规则”对象,即可从右边的任务板中看到规则的大部分信息,包括规则的名称、所有者