数据库表中的主键有什么作用

数据库表中的主键有什么作用,第1张

数据主键

主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。

作用:

1)保证实体的完整性;

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

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

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

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

主键的无意义性

在开发过程中,读者可能会看到将一些表使用有意义的字段表示主键,例如“用户登录信息表”将“登录名”(英文名)作为主键,“订单表”中将“订单编号”作为主键,如此设计主键一般都是没什么问题,因为将这些主键基本不具有“意义更改”的可能性。但是,也有一些例外的情况,例如“订单表”需要支持需求“订单可以作废,并重新生成订单,而且订单号要保持原订单号一致”,那将“订单编号”作为主键就满足不了要求了。因此读者在使用具有实际意义的字段作为主键时,需要考虑是否存在这种可能性。

主键的选择

①编号作主键

此方法就是采用实际业务中的唯一字段的“编号”作为主键设计,这在小型的项目中是推荐这样做的,因为这可以使项目比较简单化,但在使用中却可能带来一些麻烦,比如要进行“编号修改”时,可能要涉及到很多相关联的其他表,就像黎叔说的“后果很严重”;还有就是上面提到的“业务要求允许编号重复时”,我们再那么先知,都无法知道业务将会修改成什么

②自动编号主键

这种方法也是很多朋友在使用的,就是新建一个ID字段,自动增长,非常方便也满足主键的原则,优点是:数据库自动编号,速度快,而且是增量增长,聚集型主键按顺序存放,对于检索非常有利;数字型的,占用空间小,易排序,在程序中传递也方便;如果通过非系统增加记录(比如手动录入,或是用其他工具直接在表里插入新记录,或老系统数据导入)时,非常方便,不用担心主键重复问题。

缺点:其实缺点也就是来自其优点,就是因为自动增长,在手动要插入指定ID的记录时会显得麻烦,尤其是当系统与其他系统集成时,需要数据导入时,很难保证原系统的ID不发生主键冲突(前提是老系统也是数字型的);如果其他系统主键不是数字型那就麻烦更大了,会导致修改主键数据类型了,这也会导致其他相关表的修改,后果同样很严重;就算其他系统也是数字型的,在导入时,为了区分新老数据,可能想在老数据主键前统一加一个“o”(old)来表示这是老数据,那么自动增长的数字型又面临一个挑战。

建立索引是为了不通过存取整张表的数据而是搜索已经排序的索引,然后通过索引的定位到表中快速搜索到你要的条目。主键是唯一索引,可以唯一标识该条目。唯一索引可以有多个,可以称作候选键,主键只有一个。对于一个大型数据表,没有索引是难以想象的。

mysql设置主键的代码是PRIMARY KEY (主键字段)。

如:CREATE TABLE Customer (SID integer,Last_Name varchar(30),First_Name varchar(30),PRIMARY KEY (SID))。

主关键字(主键,primary key)是被挑选出来,作表的行的唯一标识的候选关键字。一个表只有一个主关键字。主关键字又可以称为主键。

扩展资料:

永远也不要更新主键。实际上,因为主键除了唯一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。

主键应当由计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了唯一标识一行以外的意义。一旦越过这个界限,就可能产生人为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。

创建复合主键

可以指定多个字段的组合用作表的主键,但是现在很

少这样做。这种主键通常称为复合主键。如图2-23

所示,

选择要在复合主键中包括的多个字段,然后单击"

工具"

功能区选项卡中的钥匙图标。当然,如果在表设计中这些

字段排列在一起会更有助于快速 *** 作。

开发人员强烈感觉到主键应该由数据库中原本出现的

数据所组成时,这时才会使用复合主键。过去曾告诉所有

开发人员,每个表都应该有一个原本天生的主键。

现在很少使用复合主键的原因是:

开发人员已经认识到数据是很难预测的。即使用户承诺某

些字段的组合在表中决不会出现重复,但实际情况会与计划偏离。使用替代的主键〈如"自动编

号"

)

将袤的设计与表的数据分开。最后,使用原本天生的主键(也就是表中原本出现的数据〉的

问题在于数据集足够大时,选择作为表的主键的字段值很可能出现重复。

另外,使用复合主键时,维护表间的关系也变得越来越复杂,因为必须在包含相关数据的所

有表中复制字段。使用复合主键只会增加数据库的复杂性,而不会提高数据库的稳定性、完整性

或其他所需的特性。

1、首先,打开access数据库软件,然后打开你之前设置好的文档。

2、点击左上角的视图,然后再选择设计视图。

3、需要你要设置主键的字段,我们可以在序号前面右击,然后选择主键。

扩展资料

主键的作用:

1、使数据库记录按照主键顺序显示,保证实体的完整性。

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

主键的特点:

1、一个表中只能有一个主键(单字段主键或多字段主键)。

2、主键的值不可重复,也不可为空(NULL)。

注意:使用自动编号作为主键。速度快、占用空间小、易排序检索、还不会重复。

主键就是限制资料不重复的字段﹐设置为主键的字段(可多个字段一起做主键)﹐设了主键就限制了资料的唯一性﹐例如在人事资料中有一个身份征号的字段﹐这个就可设为主键(因为身份征号不会重复)﹐但姓名就不可以﹐因为姓名可以重复﹔另外设置了主键有利于提高数据的检索速度﹐也保证数据的准确性。

以将两个字段设为主键为例:

第一步、首先打开sql server数据库,进行设计表,按住ctrl键,选中两个要设置为主键的字段,如下图所示:

第二步、选中之后,鼠标右键,点击设置主键,如下图所示:

第三步、可以看到两个字段都设置为主键了,如下图所示:

第四步、我们也可以使用代码来设置主键,alter table Table_1 add constraint pk_name primary key (id,name)设置Table_1表的id,name为主键,如下图所示:

第五步、点击执行之后,就成功设置两个字段为主键了,如下图所示:

以上就是关于数据库表中的主键有什么作用全部的内容,包括:数据库表中的主键有什么作用、在数据库中设置主键和索引的目的分别是什么、mysql设置主键的代码是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存