先说点基础知识,每张表必须要有主键,先有主键才有外键,没有主键,是添加不成功外键的。

在很多时候我们需要两张表甚至三张表进行关联查询,这时候就需要用到外键了,但有的人说用外键效率不高,用冗余。

这里暂时不讲冗余,只聊一下外键:

接着上面的讲,两张表要关联查询,一般都有主表和从表的,例如 
建一张学生表student,如下图: 
--------------------- 
关于引用完整性即外键的用法

在建一张分数表score ,如下图: 

关于引用完整性即外键的用法 

我们来分析,先要有学生才会有分数,所以要查找某一位学生的分数,肯定是先查学生,所以这里,学生表是主表,分数表是从表(也有人叫子表), 
建子表的时候,你得知道这是那个学生的分数吧,所以就得引用主表中的学号stuid字段(列)。

上述表中的id是主键;

这时候要关联两张表(或者说约束)就利用外键,当然谁引用,就让谁创建外键,上面是score表中引用了student的学号stuid字段,所以就在score表中创建外键。都是从(子)表创建外键。

create table score(id int primary key,
                    name varchar(20),
                    stuid int,
                    score int
                    constraint fk_student_score_stuid foreign key(stuid) references student(stuid));
    加了一个名称为fk_student_score_stuid 外键约束,给stuid这一列加的,key(stuid)是指score表中的这一列,引用了student这张表中的stuid,不用说student(stuid)中的stuid肯定是指student表中的stuid字段。


--------------------- 
 

相关文章:

  • 2022-12-23
  • 2021-11-23
  • 2021-12-10
  • 2021-06-04
  • 2022-12-23
  • 2021-09-25
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-09-18
  • 2022-12-23
  • 2021-06-26
  • 2022-12-23
  • 2021-09-17
相关资源
相似解决方案