数据库之约束

约束:
作用于表中字段上的规则,用于限制存储在表中的数据
目的:
可以保证数据库中数据的正确、有效性和完整性
分类:

  1. 非空约束:限制该字段的数据不能为null,关键字为 not null
  2. 唯一约束:保证该字段的所有数据都是唯一、不重复的,unique
  3. 主键约束:主键是一行数据的唯一标识,要求非空且唯一,primary key
  4. 默认约束:保存数据时,如果未指定该字段的值,则采用默认值;default
  5. 检查约束:保存字段值满足某一个条件,check
  6. 外键约束:用来让两张表的数据之间建立连接,保证数据的一致性和完整性,子表设置外键,foreign key

演示代码:
7. 主键且自动增长:id int primary key auto_increment ;
8. 不为空,且唯一:name varchar(10) not null unique;
9. 大于0小于等于120:age int check( age > 0 && age <= 120);
10. 默认值: status char(1) default ‘1’;
11. 外键约束
[constraint][外键名称] foreign key(外键字段名) references 主表(主表列名);

alter table 表名 add constraint 外键名称 foreign key (外键字段名) references
主表(主表列名) on update cascade on delete cascade;

删除外键:
alter table 表名 drop foreign key 外键名称;

删除/更新行为:
no action:当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,有则不允许删除/更新。
restrict:同上;
cascade:当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,有则删除/更新外键在子表中的记录;
set null:当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null;
set default:父表有变更时,子表将外键列设置成一个默认的值(innodb不支持)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值