JavaWeb开发思维导图之——MySQL数据库约束(20)
一 概述
- 外键约束
- 外键的级联更新和级联删除
- 约束
二 内容详情
2.1 外键约束
1-为何要外键约束
- 表与表关联时,没有约束,无法保证数据的准确性
- 例如,用户表(user)和订单表(orderlist),通过orderlist的uid关联user(id)
- 主表 (user)和从表(orderlist)
2-作用:让表与表之间产生关联关系,保证数据的准确性
3-操作
- 建表时添加外键约束:create table 表名(列名 数据类型 约束,...constraint 外键名 forein key (本表外键列名) references 主表名(主表主键列名));
- 删除外键约束:alert table 表名 drop foreign key 外键名;
- 建表后单独添加外键约束:alert table 表名 add constraint 外键名 foreign key (本表外键列名) references 主表名(主键列名);
2.2 外键的级联更新和级联删除
1-概念
- 级联更新:主表中的数据进行修改时,从表中关联的数据会随之修改
- 级联删除:主表中的数据删除时,从表中关联的数据也会随之删除
2-操作
添加级联更新:alter table 表名 add constraint 外键名 foreign key (本表外键列名) references 主表名(主键列名) on update cascade;
级联删除:alter table 表名 add constraint 外键名 foreign key(本表外键列名) references 主表名(主键列名) on delete cascade;
同时添加级联更新和级联删除:alter table 表名 add constraint 外键名 foreign key (本表外键列名) references 主表名(主键列名) on update cascade on delete cascade;
2.3 约束
1-介绍:对表中数据进行限定,保证数据的正确性、有效性、完整性
2-约束分类
- 主键约束
- 主键自增
- 唯一约束
- 非空约束
- 外键约束
- 外键级联更新
- 外键级联删除