我刚刚启动MySQL数据库,但对外键可以做什么感到困惑。

假设我有一个父表(老师),而taxno是主键;

taxno   Tfname   Tlname   Tgender   Tquali    Thours

1111    TOH       JIM       M       HONOURS    120


和我的孩子表(teacsub);

taxno   Tfname   Tlname   Tgender   Tquali    Thours  Subtitle Subtype


例如,如果我对teacsub的输入是

 taxno   Tfname   Tlname   Tgender   Tquali    Thours  Subtitle   Subtype

 1111   dddd       dddd      F       weqwe      100     HISTORY     3


它会提示我输入的teacsub是错误的吗?

我已经为Taxno创建了外键,但仅适用于Taxno。

最佳答案

关系数据库的优点在于,使用正确构造的表,您无需像以前那样重复信息。

如果您的teacher表包含诸如姓名,性别等信息,则无需在其他任何地方重复此信息。

例如,如果您的teacsub表只是teacsub(taxno, subtitle, subtype),则可以通过将两个表与这样的查询结合在一起来获取“完整”信息:

select *
  from teacher
    inner join teacsub
      on teacher.taxno = teacsub.taxno


这将很乐意地结束,并从两个表中共享相同的taxno的所有行

10-07 21:08