2020.9.23付海政

今日总结

完成了MySQL的学习,说实话比我想象中更加费时间,MYSQL和JavaScript比起来要严格得多,而且必须要手动刷新,稍微出点错误就会报错,但是已经执行的内容却会直接生效,所以就算修正了错误,不把执行过的内容隐藏掉还是会报错,真的是十分麻烦。

不过有一说一,我觉得今天学习到的和数据库有关的内容已经比我在学校里认识的多得多了。嗯,以前也没怎么学习。因为老是报错,所以在课堂上并没有全部试验完,需要花费额外的时间去记忆。不过至少我收获了我想要的东西。

杂谈

今天在课堂上执行代码的练习时,因为我可能是没掌握得太好吧,当然我觉得这个Navicat of MySQL的报错提示也有问题,就给你说不能使用外键,有不说清楚原因,花了不少时间才弄明白到底是怎么回事,所以去找了下外键的限制。

定义外键时,需要遵守下列规则:

  • 主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。
  • 必须为主表定义主键。
  • 主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。
  • 在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键。
  • 外键中列的数目必须和主表的主键中列的数目相同。
  • 外键中列的数据类型必须和主表主键中对应列的数据类型相同。

评论

this is is footer