数据库之约束

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

  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不支持)。


版权声明:本文为dazhongliu666原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。