现在的位置: 首页 > 综合 > 正文

无规矩不成方圆——SQL Server 约束

2012年10月22日 ⁄ 综合 ⁄ 共 1113字 ⁄ 字号 评论关闭

        数据库的功能是管理大量的数据。但凡需要管理的东西的数量巨大时,必定需要一定的限制或者规则。比如交通需要交通规则、民航需要空中交通管制、国家需要法律等等,假设把这些限制除去,天下必定大乱。在数据库中这种限制我们称之为“约束”,它功能是保证数据完整性。而把约束封装之后就成了规则,规则是一个对象,他通过绑定来实现保持数据完整性的功能,同时简化了代码实现代码的重复利用。

       约束主要有五种:

       1、主键约束      

       主键约束是指定表中的某一列或者几列的组合成的具有唯一性标识每一条记录,被定义为主键的列中不能有NULL空值,数据类型不能是TEXT或者IMAGE。我们入学时的学号就可以被定义为主键。需注意每个表只能有一个主键,但不是强制要求一定要有。由于主键具有唯一性(资源稀缺),所以在定义主键时需遵循以下原则:1、主键应当对用户没有意义2、主键最好是单列的3、主键永远不用更新4、主键不适用动态变化的数据5、主键应当由计算机生成。当然这些条件都满足是不容易的,所以选择主键时需要注意的是几个原则的平衡。

       2、外键约束

      外键约束定义了表之间的关系,它是相对于外键而言的。当主键标识的记录被更新时,被定义为外键的列中有和主键相同的记录就会自动更新,以此来保证表间的数据完整性。而当被定义为外键约束的表中只能插入在主键表中存在的记录。即“外键的表”必定包含于“主键表”,否则将被视为非法。

       3、唯一性约束

        唯一性约束用于保证列中不存在相同的值。假如一张学生信息的表,我们给学号定义为唯一性约束,那么就可以保证不出现重复的学号。如果学号已被定义为主键则不能再被定义唯一性约束。

       4、核查约束

        核查约束用来保证被输入的值符合一定的范围或条件。否则不能更新,如工资表中员工工资被要求在3000到4000之间,那么一旦输入的值不在这个区间内就会无法更新记录。这就避免的出现错误数据,如果本来只有3000的月薪却发了30000,那么老板一定会疯的。一句话:只有符合核查约束的数据才能接接受。

       5、默认值约束

       这个就是给没有输入值的字段设定一个默认值。这个就不多说了。

       约束可以通过可视化管理器来管理,也可通过T-SQL语句来管理,这个说来话长篇幅有限,算了。

       规则,我认为规则就是被封装的约束。规则通过和字段绑定来实现功能,所以规则创建以后是可以重复利用的,哪里需要规则就绑定谁。使用系统存储过程SP-Bindrule来实现绑定。

       啊呀,都是废话,毫无帮助,写不下去了!!!

     

抱歉!评论已关闭.