数据中的约束,主要有主键约束,外键约束,非空约束等。
主键约束其实就是非空唯一约束,非空唯一约束也可以通过建立唯一索引来实现,外键约束需要通过其他的表来帮助实现,非空约束在定义是数据库字段时就定义了。还有另一类约束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等。