1、什么是外键 -- 约束
2、外键的作用
用于表与表之间的关联
3、外键的创建
3、1 mysql 创建带有外键的表
CREATE TABLE `student` (`id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',`name` varchar(10) NOT NULL DEFAULT "匿名" COMMENT '姓名',`password` varchar(11) NOT NULL DEFAULT 123456 COMMENT '密码',`sex` varchar(2) NOT NULL DEFAULT "男" COMMENT '性别',`gradeid` int(11) NOT NULL COMMENT '学生年级',`address` varchar(100) NULL DEFAULT NULL COMMENT '家庭住址',`email` varchar(20) NULL DEFAULT NULL COMMENT '电子邮件',PRIMARY KEY (`id`),CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `mybatis_tb`.`grade` (`id`)
);
3、1.1 关键字
- constraint 约束
- foreign key 表中需要外联的列
- references 引用
3、2 navicat 创建外键表
3、2.1 外键的属性
- 名 :外键的名称
- 字段 :作为外键的列
- 被引用模式 : 外联的数据库
- 被引用的表 : 外联的表
- 被引用的字段 : 外联表的列
删除时 和 更新时 的参数
CASCADE :串联
NO ACTION : 无动作
RESTRICT : 约束,限制
SET NULL : 设置为空
4、在表中添加外键
alter table `student`
add CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `mybatis_tb`.`grade` (`id`)
alter table `student`
add constraint 外键名 foreign key (列名) references 那个表(那个字段);
5、总结
- 在外联表中,如果表中存在外键,则删除失败,应将外键删除,在去删表
- 以上的操作都是都是物理外键,数据库级别的外键,不建议使用