当前位置:首页>维修大全>综合>

SQL数据库中的主键与外键介绍

SQL数据库中的主键与外键介绍

更新时间:2023-06-29 04:26:37

SQL数据库中的主键与外键介绍

一、什么是主键、外键:

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

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

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

二、 主键、外键 和索引的区别

定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值

该字段没有重复值,但可以有一个空值作用: 用来保证数据完整性 用来和其他表建立联系用的 是提高查询排序的速度个数: 主键只能有一个

一个表可以有多个外键 一个表可以有多个惟一索引

聚集索引和非聚集索引的区别?聚集索引一定是唯一索引。但唯一索引不一定是聚集索引。

聚集索引,在索引页里直接存放数据,而非聚集索引在索引页里存放的是索引,这些索引指向专门的数据页的数据。

三、数据库中主键和外键的设计原则

关系数据库依赖于主键---它是数据库物理模式的基石。主键在物理层面上只有两个用途:

1、惟一地标识一行。

2、作为一个可以被外键有效引用的对象。

3、主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。

4、主键应该是单列的,以便提高连接和筛选操作的效率。

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

6、主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。

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

更多栏目