表通过约束来确保数据纪录的唯一性,维护表内以及表间的关系。约束,就是数据库管理器强制的规则。有三种规则:唯一性约束,引用完整性,表核查约束。

唯一性约束:关键字的值在表内必须唯一。通过primary key或者unique子句定义。在create table, alter table时候使用。定义唯一性约束之后,数据库管理器创建一个唯一索引并指出它是主索引还是唯一的系统索引。约束通过唯一索引来实现。

引用完整性:定义一些表间或者表内的关系,并由数据库管理器来维护这些关系。就是外关键字和主关键字,依赖表和父表之间的关系。引用约束的目的是维护数据库以及遵守数据入口规则。外关键字可以和父表中的主键或者唯一键建立关系。用到引用完整性的规则有:

 DEPTNO主关键字 DEPTNAME MGRNO
  DEPARTMENT(父表)

EMPLOYEENO主关键字 FIRSTNAME LASTNAME WORKDEPT外关键字 PHONENO
EMPLOYEE表(依赖表)

(1)INSERT规则:父表中插入行不依赖于依赖表;依赖表中插入行,必须考察外键和父表主键/唯一键的关系是否允许插入。

(2)DELETE规则:从依赖表中删除行时候,对父表没有影响。从父表中删除行时候,要考察建立依赖表时候指定的规则:RESTRICT,则必须先删除依赖表中的行,才能删除父表中的行,不能单独删除父表中的行。NO ACTION,字面理解就是无作为,但是依赖表所有的行也还要有父行,于是就要保证删除后依赖行仍然有父行,具体可以参考SQL Reference。CASCADE(级联),删除父行时候,自动删除依赖行。SET NULL,删除父行时候,将依赖行的外关键字置空(如果允许空),其它部分不变。

(3)UPDATE规则:禁止更新父表中行的关键字。更新依赖表的外关键字时候,若该外关键字定义为NOT NULL选项,它必须和父键中的值匹配。两个选项。RESTRICT,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值