如何保证数据库完整性

一  完整性包括: 

1.      实体完整性

         数据行不能存在重复,否则为冗余数据

 

2.      域完整性

           对输入到特定列的数值的范围限制,就是安全性!

 

3.      引用完整性(即参照完整性Reference)

           要求子表中的相关项必须在主表中存在

           如果建立了主表和子表的关系,则:  子表中的相关项目的数据,在主表中必须存在;

                                                             主表中相关项的数据更改了,则子表对应的数据项也应当随之更改;

                                                             在删除子表之前,不能够删除主表;

                                                             删除主表中的数据必须先删除从表的数据;

 

4.      自定义完整性

 

二     约束:

         约束的定义:确保表中数据的完整型

         一般的约束类型:

         主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空

         默认约束(Default Constraint):某列的默认值,如国家我们默认的是“中国”

         检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束

         唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。

         外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的那列

 

如下是对约束的语法使用:

  1.  alter table student add constraint  PK_sid primary key(sid) 对student表sid字段增加主键约束

 

  2.  alter table student add constraint  DF_sex default("男") for sex 对student表中的sex字段增加默认约束为(男)

 

  3.  alter table student add constraint  CK_age check(age between 30 and 50);对表中的年龄字段限制在30到50之间

 

  4.  alter table student add constraint  UNI_studentid unique(studentid) 每个人的学号只有一个,避免出现相同

 

  5.  alter table student add constraint FK_cno foreign key(cno) reference info(cno)参照信息表中的cno字段

删除约束

alter table student drop constraint PK_sid primary;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值