有时候在我们的表里可以通过某个列或者某些列确定唯一的一条记录,我们就可以把这个列或者这些列称为候选键
。比如在学生信息表student_info
中,只要我们知道某个学生的学号,就可以确定一个唯一的学生信息,也就是一条记录。当然,我们也可以通过身份证号来确定唯一的一条学生信息记录,所以学号
和身份证号
都可以作为学生信息表的候选键
。在学生成绩表student_score
中,我们可以通过学号
和科目
这两个列的组合来确定唯一的一条成绩记录,所以学号、科目
这两个列的组合可以作为学生成绩表的候选键
。
一个表可能有多个候选键,我们可以选择一个候选键作为表的主键
。从定义中就可以看出,一个表最多只能有一个主键,主键的值不能重复,通过主键可以找到唯一的一条记录。
候选键:主键,唯一约束,其他候选键。候选键可以是由表格中某一列或者是某些列组成。
主键和唯一约束 系统会自动上索引,只有加上索引的列(某些列组合)才能成为其他表的外键。
当一个属性不能单独成为主码的时候,可以配合其他属性联合组成主码
不过当一个属性单独可以构成主码时再联合其他属性,就多余了!!
我和楼下的两位是一个意思,只是我没表达清楚
主码可以有多个字段,但是一个表只能有一个主码
在SQL里面,设计表的时候,按住ctrl键,然后点你要设置为主码的
字段,然后再点上面那个小钥匙样子的按钮,就可以设置多个字段为
主码