(数据库原理)数据库的完整性总结

完整性指的是数据的正确性和相容性

1.实体完整性:在创建表的时候用PRIMARY KEY定义,在单属性码时可以列级约束,但在多熟悉码时要用表级约束

列级:Sno CHAR(9) PRIMARY KEYj

表级:Sno CHAR(9)

           PRIMARY KEY(Sno)

 

2.参照完整性:用FOREIGN KEY定义

Sno CHAR(9) NOT NULL,

FOREIGN KEY(Sno) REFERENCES Student(Sno)

    ON DELETE NOACTION  //student中的元祖别删时,自己的表拒绝删除

    ON UPDATE CASCADE,   //原表更新时,自己也跟着更新

 

3.用户自定义的完整性:

属性上的约束条件:

列值非空(NOT NULL)

列值唯一(UNIQUE)

检查是否满足条件(CHECK 短语)

 

4.完整性约束命名子句:

CONSTRAINT<完整性约束条件名><完整性约束条件>

修改(先删除再添加):

ALTER TABLE XXX

    DROP CONSTRAINT C1;

ALTER TABLE XXX

    ADD CONSTRAINT C1 CHECK(XXXX);

 

5.断言

创建:

CREATE ASSERTION <断言名>

删除:

DROP ASSERTION <断言名>

 

6.触发器

CREATRE TRIGGER<触发器名>

{BEFORE|AFTER}<触发事件>ON<表名>

REFERENCING NEW|OLD ROW AS<变量>

FOR EACH{ROW|STATEMENT}

[WHEN<触发条件>]<触发动作体>

例子:

定义一个BEFORE行级触发器,为教师表定义完整性规则“工资不得低于4000元,如果低于4000元就自动改成4000元”

CREATE TRIGGER Insert_or_update_sal

BEFORE INSERT OR UPDATE ON Teacher

REFERENCING NEW row AS newTuple

FOR EACH ROW

BEGIN

    IF(newtuple.job = '教授') AND (newtuple.sal<4000)

        THEN newtuple.sal:=4000

    ENDIF;

END;

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(数据库)