数据库的检查约束check约束

Posted xuexiaodong2009

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库的检查约束check约束相关的知识,希望对你有一定的参考价值。

数据中的约束,主要有主键约束,外键约束,非空约束等。

主键约束其实就是非空唯一约束,非空唯一约束也可以通过建立唯一索引来实现,外键约束需要通过其他的表来帮助实现,非空约束在定义是数据库字段时就定义了。还有另一类约束check约束,用处挺大的,只是自己很少使用。

  那check约束可以实现那些功能呢?

  1范围规定

  2枚举值规定

  3特定的匹配

1范围规定

  例如规定,金额只能大于0

  ALTER TABLE tablename ADD CHECK (jine>0)

2枚举值规定

例如难度级别,只能为,1,2,3,4

ALTER TABLE tablename  ADD CHECK (nandu>0 and nandu<5) //定位为整形时
或者

ALTER TABLE tablename  ADD CHECK (nandu in (1,2,3,4)) //定位为整形时

 3特定的匹配

  因为数据库中可以使用like的正则表达式,因此也能完成一些特定的匹配

  例如必须以9开头的

ALTER TABLE tablename  ADD CHECK (fieldName like'9%')
  

当然每种数据库的规则,又有很大不同,导致实现的细节会有所不一样。

这些都是由check可以使用的规则决定的,如果check中可以使用自定义函数,则check约束的范围将大大扩展。

  其实需要注意的是,空值的处理,因为空值的比较结果是未知,不是真也不是假.

check中可以使用的运算符,主要有>,<,and ,or,not,like,in等。






以上是关于数据库的检查约束check约束的主要内容,如果未能解决你的问题,请参考以下文章

关于MySQL的检查约束不生效的问题

oracle的check约束

oracle数据库添加,查询,删除检查约束

CHECK约束

mysql的check约束问题···

Oracle 检查约束check