什么是关系数据库的主键?

什么是关系数据库的主键?,第1张

关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如 :

学生表(学号,姓名,性别,班级)

其中每个学生的学号是唯一的,学号就是一个主键

用户表(用户名、密码、登录级别)

其中用户名是唯一的, 用户名就是一个主键

上机记录表(卡号,学号,姓名、序列号)

上机记录表中单一一个属性无法唯一标识一条记录,学号和姓名的组合才可以唯一标识一条记录,所以 学号和姓名的属性组是一个主键

上机记录表中的序列号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键

定义主键和外键主要是为了维护关系数据库的完整性,总结一下:

主键是能确定一条记录的唯一标识,比如,一条记录包括身份z号,姓名,年龄。身份z号是唯一能确定这个人的,其它都可能有重复,所以,身份z号是主键。

外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,就可以是A表的外键。

数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。

主键可以用来表示一个精确定位的特定的行,如果没有主键,你就无法精准定位一条记录是否就是你要的相关行记录,这样就会导致更新或删除表中特定的行很困难。

而如果我们有主键来约束行记录的唯一性后,就可以利用主键来解决这个问题。

主键的作用:

1)保证实体的完整性

2)加快数据库的 *** 作速度。

3) 在表中添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复。

4) DBMS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

扩展资料:

主键的必要性

在有些数据库中,虽然主键不是必需的,但最好为每个表都设置一个主键,不管是单主键还是复合主键。它存在代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,以及本记录的修改与删除。

主键的无意义性

在开发过程中,可能会看到将一些表使用有意义的字段表示主键,例如“用户登录信息表”将“登录名”(英文名)作为主键,“订单表”中将“订单编号”作为主键,如此设计主键一般都是没什么问题,因为将这些主键基本不具有“意义更改”的可能性。

但是,也有一些例外的情况,例如“订单表”需要支持需求“订单可以作废,并重新生成订单,而且订单号要保持原订单号一致”,那将“订单编号”作为主键就满足不了要求了。因此读者在使用具有实际意义的字段作为主键时,需要考虑是否存在这种可能性。

参考资料:百度百科-数据库主键


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9995387.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存