SQL中的「规则」 constraint 与「约束」 rule 的区别。

前言,学校时学习的东西,好久都没有用到了。

今天看到了rule,第一眼还以为是约束了。

--------------------------------------------------------------

举例,说明「约束」:constraint

我们在定义一个表的时候,可以定义下面几种约束

1.主键约束 

2.外键约束 

3.唯一性约束 

4.非空约束

5.检查约束    check:  例:check(columnName > 18)

======================================

举例,说明「规则」(在Sql Server2000中)  rule

为目标数据库管理系统设计业务规则:
4.2.1 规则:
rule[Sex]
create rule [Sex] as @ in ('男','女')

rule[TypeHaveChild]
create rule [TypeHaveChild] as @ in ('y','n')
rule[IsSpecial]


create rule [IsSpecial] as @ in ('y','n')

rule[OrderIsConfirm]
create rule [OrderIsConfirm] as @ in ('y','n')

rule[Actor]
create rule [Actor] as @ in('超级管理员','用户管理员','论坛管理员','服装
管理员','订单管理员','公告管理员')

rule[OrderSendStatus]
create rule [OrderSendStatus

 

 实例(应用到表中):

CREATE   RULE   id_chk   AS   @id   BETWEEN   0   and   10000 

 CREATE   TABLE   cust_sample 
          ( 
          cust_id                                    int 
          PRIMARY   KEY, 
          cust_name                           char(50), 
          cust_address                           char(50), 
          cust_credit_limit         money, 
          ) 


sp_bindrule   id_chk,    'cust_sample.cust_id ' 

 

===========================================

区别总结:

规则可以邦定到多列 、check只能邦定一个表

用规则可以优化你的设计

 

但是我觉得,一般情况下,我们完全可以使用约束中的检查check。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值