主键:唯一标识表中的所有行的一个列或一组列主键不允许空值不能存在具有相同的主键值的两个行因此主键值总是唯一标识单个行表中可以有不止一个键唯一标识行每个键都称作候选键只有一个候选键可以选作表的主键所有其它候选键称作备用键尽管表不要求具有主键但定义主键是很好的做法 在规范化的表中每行中的所有数据值都完全依赖于主键例如在以 EmployeeID 作为主键的规范化的 employee 表中所有列都应包含与某个特定职员相关的数据该表不具有 DepartmentName 列因为部门的名称依赖于部门 ID而不是职员 ID
不一定要的主键
主键一般用以保证数据的唯一性(主键是非空且不能重复的)
一般用在id列
例如学生表(student)里面有三列
name,sex,age
万一有几个同学是同一姓名同一性别,也同一年龄
那怎么区分他们呢
这时候主键的作用就出来了
你可以给表加一个id列
然后设为自动增长
那么个同学都能通过ID区分开来了
码(键):代表数目的符号
主码也就是主键,是惟一标识表中的每一行的字段或者多个字段的组合,它可以实现表的实体完整性
每个表只能有惟一的主码,且不能为空
这需要理清几个概念:
1)候选键: 关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码。
2)主键:当有多个候选码时,可以选定一个作为主码,选定的候选码称主键
3)外键: 关系R中的一个属性组,它不是R的候选码,但它与另一个关系S的候选码相对应,则称这个属性组为R的外码或外键。
举个例子:
有两个关系:
student(s#,sname,d#),即学生这个关系有三个属性:学号,姓名,所在系别
dep(d#,dname),即院系有两个属性:系号、系名
则s#、d#是主键,也是各自所在关系的唯一候选键,d#是student的外键
一个表只能有一个字段做做主键,但如果这个表没有主键,你又想找出惟一的记录,那么你可以使用多个字段组合成为主键来惟一标识一条记录。
你的问题:
一个表中只能有一个主键 (对)
是不是只能有一个字段为主键 (错,主键可由多字段组成)
以上就是关于数据库 主键含义和例子全部的内容,包括:数据库 主键含义和例子、数据库中的主键有什么用、数据库中键是什么意思,请解释下键、主码、主键等名称,谢谢了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)