主码和外码的关系是:保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。使两张表形成关联,外键只能引用外表中的列的值或使用空值。区别为:主码不一定是只有一个属性,主码可以由一个或者多个属性组成。主码是候选码之一;如果一个关系中的一个属性(该属性不能是候选码)是另外一个关系中的主码则这个属性为外码。外码的值要么为空,要么要为其对应的主码中的一个值。
码是数据系统中的基本概念。所谓码就是能唯一标识实体的属性 ,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码。如果K是一一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。所以候选码是最小超码,它们的任意真子集都不能成为超码。如果K是超码,那么所有包含K的集合都不能是候选码从多个候选码中任意选出一个做为主码,如果候选码只有一一个 ,那么候选码就是主码。