键
键的目的是唯一的标识一条记录,比如很常见的 ID,每条记录的 ID 都不一样。包括:
在不引起混淆的情况下,可用“键”代指“唯一键”。
索引
索引的目的是使记录查询更快。包括:
在不引起混淆的情况下,可用“索引”代指“非聚集索引”。
唯一性
聚集
如果某个键或索引用了聚集,其他键或索引就只能是非聚集的,因为聚集代表记录的物理存储顺序,而记录只能选择一种物理存储顺序。
按理说,键的作用是标识一条记录,与聚集无关,可是我们看到键还是可以设置为聚集,并且主键默认就是聚集的,由于是聚集的,这种情况下我们可以把它看作既是键,又是索引。这点可能不适合所有的数据库管理系统,不过在 SQL Server 中是适合的。
SQL Server 2000 中,在设计表中,打开索引/键选项卡,容易把人搞晕,说实话,该界面设计得确实不好,让人搞混淆了键、索引、唯一性、聚集的关系。在 Visual Web Developer 中管理数据库的界面设计得就不错:键是键、索引是索引,没有搅在一起,见下:
最后
有人说,除了“主键”、“唯一键”外,我还知道有“外键”,怎么不列在“键”的“名下”呢,其实“外键”这个命名是从另外一个层面来说的,与本文关系不大,就不谈了,有兴趣的读者还可以继续了解 SQL Server 的五种约束:NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK。
相关阅读