》复习
查询表达式
关注顺序
》正则
》外键的引入
先创建一个主表
代码
当未选中库时,可以通过库名.表名来指定表
见代码
》子表的创建
charger_id,班主任的编号
》往班任任表中添加数据
往学生表中添加数据
》查看数据,学生表的情况
每一个学生都有对应的班主任
如果把一个班主任删掉以后
相当于班主任离职了
按道理说,学生表中对应的班主任应该发生变化
然而实际情况
这样的数据是不安全不合理的
》插入数据的非法
当前一号班主任已经离职,按理学生不应该可以再被一号班主任接待
如何解决这样的琺合理的情况?
外键关联
》外键的定义
在建表的时候
注意,外键与关联的键的数据类型一定要保持一致,否则会出问题
如此就成功创建了一个学生表的子表,他与班主任表主表相关联
》关联的效果
关联好后就不可以随便删除了
当前不能够把班主任二号删掉的原因是
这个班主任名下还有带着的学生
把学生移交给其它班主任
然后再删
此时,班主任2已经不存在了
如果添加的学生,还要指向这个班主任2
因为有了外键的关,判断这个是不可以实现的
会有一个报错的提示
》思考,前面的外键是创建的时候定义好的。能否对一个不存在外键的表,临时定义外键吗?
》给一个表添加外键
代码
》删除外键
》外键约束子键
》级联删除
当父表的数据删除的时候,与它相关联的子表数据一起删掉
在定义外键的时候加上 on delete cascade
例如
查看一下建表语句
尝试一下,把主表的一条数据删除,观注子表中相关联的数据是否也没有了
》级联,设置为null
》删除外键
》补一个外键同时加级联设置为空