数据库完整性是指保护数据库中数据的
域完整性
域是一组具有相同类型的值的集合。SQL支持域的概念。通过以下语句创建域,并对其中的限制命名。
create Domain GenderDomain char(2) constraint chkGD check (value in (‘男‘,‘女‘)); # 使用域,sex的取值来自GenderDomain create Table student ( Sno char(10), sex GenderDomain, Sname char(20) )
实体完整性
关系模式R的主码不可为空
参照完整性
参照关系R的任一个外码值必须等于被参照关系S中所参照的候选码的某个值,或者为空
与特定表关联的存储过程。当在该表上执行DML操作时,可以自动触发该存储过程执行相应的操作
创建规则
create rule rule_name as condition_expression # rule_name:是新规则的名称。 # condition_expression:是定义规则的条件。规则可以是where子句中任何有效的表达式
绑定规则
sp_bindrule ‘rule_name‘,‘object_name‘;
举例
create rule r1_email as @val like ‘%@%‘ sp_bindrule ‘r1_email‘,‘student.Email‘
个人感觉这样的规则跟域的作用差不多
create assertion asser1 check(60>=all (select count(*) from sc group by c#));
对断言涉及的数据进行操作后会触发断言;断言为假,操作将会被拒绝。
原文:https://www.cnblogs.com/terieqin/p/9215824.html