主键、唯一索引、聚集索引和非聚集索引的说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主键、唯一索引、聚集索引和非聚集索引的说明
在使用SQL数据库时,为了提高检索数据的效率,确保数据唯一性,往往会建立适当的索引。
在建立索引过程中,我们需要了解4个基本的索引关键词:主键、唯一索引、聚集索引和非聚集索引。
一、主键
主关键词,是一种约束,用于唯一地标志表中的某一条记录,具有唯一性,不能重复,也不能为空(NULL)。
一张表只能有一个主键。
主键在创建时,该列会被默认同时创建唯一索引和聚集索引(在表中尚未创建聚集索引时)。
若在表中已存在其他某列为聚集索引时,被创建主键的那一列则默认同时创建唯一索引和非聚集索引。
这说明,主键与聚集索引并不是必须绑定的。
二、唯一索引
唯一索引是一种索引,它不一定是主键,它的作用是确保列的唯一性。
唯一索引列允许空值(NULL)。
一张表可以创建多个唯一索引。
三、聚集索引
聚集索引基于数据行的键值,在表内排序和存储这些数据行。
在聚集索引中,表中行记录的物理排列顺序与聚集索引的键值顺序一致,因此每张表只能建立一个聚集索引。
简单来说,聚集索引就是物理排列,以新华字典做比喻,字典中的字都是按照拼音字母顺序排列,因此可以将按拼音字母排列视为聚集索引的顺序,是与实际存储字的物理顺序是一致的。
聚集索引可以同时是唯一索引。
四、非聚集索引
因为一张表中只能存在一个聚集索引,因此可以在表中建立多个非聚集索引实现数据快速检索。
表中的数据并不按照非聚集索引列的顺序存储,但非聚集索
引的索引行中保存了非聚集键值和行定位器,可以快捷地根据非聚集键的值来定位记录的存储位置。
同样以新华字典做比喻,非聚集索引查找记录的方式,即为通过偏旁部首查找字。
字的物理顺序并不按照偏旁部首的顺序排列,但是可以通过偏旁部首定位到字。
非聚集索引可以同时是唯一索引。
五、总结
(1)主键一定是唯一的,但是不一定是聚集索引或非聚集索引。
(2)唯一索引可以是主键,也可以是聚集索引或非聚集索引。
(3)聚集索引一张表最多只能存在一列,可以是唯一或不唯一。
(4)非聚集索引一张表可以建多列,可以是唯一或不唯一。