
SQL中不是必须设置主键。
主关键字(primary key)的意思是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。
在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录,主关键字是一种唯一关键字,表定义的一部分。
一个表不能有多个主关键字,并且主关键字的列不能包含空值。主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义。主键只是说对一种表和表关系的关联而已,还有就是在建主键的时候会自动添加个索引,某些情况下可以增加查询速度,如果只是简单的对单表 *** 作的话,没有必要去设置主键。
数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。
主键可以用来表示一个精确定位的特定的行,如果没有主键,你就无法精准定位一条记录是否就是你要的相关行记录,这样就会导致更新或删除表中特定的行很困难。
而如果我们有主键来约束行记录的唯一性后,就可以利用主键来解决这个问题。
主键的作用:
1)保证实体的完整性
2)加快数据库的 *** 作速度。
3) 在表中添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复。
4) DBMS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。
扩展资料:
主键的必要性
在有些数据库中,虽然主键不是必需的,但最好为每个表都设置一个主键,不管是单主键还是复合主键。它存在代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,以及本记录的修改与删除。
主键的无意义性
在开发过程中,可能会看到将一些表使用有意义的字段表示主键,例如“用户登录信息表”将“登录名”(英文名)作为主键,“订单表”中将“订单编号”作为主键,如此设计主键一般都是没什么问题,因为将这些主键基本不具有“意义更改”的可能性。
但是,也有一些例外的情况,例如“订单表”需要支持需求“订单可以作废,并重新生成订单,而且订单号要保持原订单号一致”,那将“订单编号”作为主键就满足不了要求了。因此读者在使用具有实际意义的字段作为主键时,需要考虑是否存在这种可能性。
参考资料:百度百科-数据库主键
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)