CHECK约束属于域完整性。
CHECK约束用于定义插入或修改一行时所满足的条件,通常限制某些字段的取值范围,例如,人的性别只能是“男”或“女”两个取值;去商场买东西,只能支付大于0的钱额;去银行取款只能取大于0的金额等,在生活中像这样的例子举不胜举,针对这些情况可以使用CHECK约束进行约束。
CHECK约束的主要特征是:
√ 限制了向特定字段列输入数据的类型;
√ 表级定义的CHECK约束可以对多个字段列进行检查。
CHECK约束的语法规则如示例代码3-13所示。
例如,将orders(订单)表中的Amount(数量)字段的值限定为不超过100。在向表中输入数据时,如果Amount(数量)字段的值超过100,系统就会拒绝此数据的输入。下面以此为例来创建CHECK约束。
1.使用T-SQL语句在定义表时创建CHECK约束(示例代码3-14)
2.在orders表的Amount列建立CHECK约束(也可在修改时建立,如示例代码3-15)
(www.xing528.com)
CHECK约束非常重要,它限定了被约束的数据库表列能够填入的数据值的范围,当往被CHECK约束的表列填入或修改成不满足约束条件的数据时将报错,以INSERT语句为例示例代码如3-16所示,执行结果如图3-6所示。
图3-6 违反CHECK约束示例
从图3-6可以看出,往orders表插入新数据记录时,订单数量1000违反CHECK约束(订单数量小于100),致使数据不能新增,报出数据库错误信息。
3.使用Microsoft SQL Server Management Studio工具表时创建CHECK约束
当利用Microsoft SQL Server Management Studio工具在创建数据库表时创建CHECK约束(建表的步骤我们在上一章节中讲过,不再重复),建表时需要输入库表列,即属性,当已经输入库表列后,选中需要建立CHECK约束的列,点击右键,在弹出菜单中选择有“CHECK约束”,进入“CHECK约束”定义界面,如图3-7所示。
图3-7 定义CHECK约束
如图3-7所示,我们给orders表的Amount定义了CHECK约束:Amount<100,该约束的名字为AMOUNT_CHECK。
同理,我们可以在修改表的时候,修改现有的约束,只需要在进入图3-7所示界面的“选定的CHECK约束”选中需要修改的约束,然后修改界面右边的“表达式”文本内容,然后按“关闭”按钮退出即可。在修改表其他内容后“保存”表的修改,这样同时就把约束修改也保存了。当然我们从图3-7中也可以给没有约束的表列“添加”新的CHECK约束或“删除”现有的约束。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。