学习笔记(04):MySQL数据库入门实战精讲-数据完整性

立即学习:https://edu.csdn.net/course/play/27328/362521?utm_source=blogtoedu

数据完整性

实体完整性

要求每张表单都有唯一标识符,每张表的主键字段不能为空且不能重复

约束方法:唯一性约束、主键约束、标识列

操作:可以加unique来限制两条数据的同一个字段不能有相同值

eg.

create table person(

      id int not null auto_increment primary key ,

      name varchar(30),

      number varchar(11) unique

); 

number是唯一的,不可重复的

域完整性

针对某一个具体关系数据库的约束条件,保证表单中某些列不能输入无效的值

约束方法:限制数据类型、检查约束、默认值、非空约束

 

 

参照完整性

要求关系中不允许用不存在的实体

约束方法:外键约束

方法:加入foreign key

eg.

主表

craete table stu(

      stu_no int not null primary key,

      stu_name varchar(30) 

);

从表

create table sc(

      id int not null auto_increment primary key,

stu_no int not null,

course varchar(20),

grade int,

foreign key(stu_no) references stu(stu_no)

);

表明sc的stu_no和stu里的stu_no相关联,sc里面不能输入stu里面没有的stu_no

如果想解除此reference,使用set foreign_key_checks =0

如果想恢复,则使用set foreign_key_checks =num(1、2、3....)

如果想查询有几个字段有reference,使用select @@foreign_key_checks;

 

 

 

用户自定义完整性

某一具体应用需求

约束方法:规则、存储过程、触发器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值