2009-04-20 37 views

回答

16

具有唯一值的字段本质上是一个关键字。但是,键用于唯一标识表中的一行,而索引用于对表中的行进行排序或分组。密钥一旦被初始设置就不应该改变,因为它可能会被引用到数据库中的其他地方。但是,索引字段可以自由更改。

4

一个关键字唯一标识表中的一行。索引是基于表中字段的行的顺序。一个表可以有多个索引,因为索引可以只是系统用来搜索的一组字段的特定顺序,然后查找实际的行。从技术上讲,系统只能用一个键来识别一行。大多数时候,这也是主要指标,但不一定是。

+0

我以为我可以在桌子上有多个键。 – 2009-04-20 18:16:39

+0

您只能有一个主键。该主键可以由多个字段组成,但只有一个键。 您还可以定义一个或多个外键,但我认为这可能超出了您的问题范围。 – 2009-04-20 18:47:03

2

唯一性是对数据强制的约束,而索引将有助于在数据库中物理排序(聚簇索引)或逻辑(非聚簇索引)行,以便更快地进行检索。

+0

要明确,聚簇索引是物理排序,而非聚簇索引是逻辑的。 – 2009-04-20 18:03:54

3

密钥用于维护数据完整性,索引用于维护数据库性能。想想你想要解决的任何问题,这将导致你朝着正确的方向前进。

2

一个键应该是该行的业务模型的唯一标识符。一个唯一索引的列可以被认为是“备用密钥”。通常,SQL服务器将自动为主键创建唯一索引。

我还应该提到你可以索引非唯一列;诸如这些索引用于加快对索引列的查询。

1

如果您创建一个主键的键总是有现场 后面的索引,SQL Server将创建一个聚集唯一索引,以支持

即使当你创建一个唯一约束的SQL Server还会创建一个索引

当然,唯一性约束和主键之间的区别在于,唯一性约束允许至少1个NULL值(sql上的多于1个) 您只能有1个主键和多个(在SQL服务器上249)唯一的约束表

9

一个密钥标识存储在数据库中的行。索引是一种类似于书末的那种结构。在一本书的最后,你会看到几个带有文字的页面,你可以在那里找到这些文字。这些页面是一个索引,数据库的情况也是如此。该索引包含密钥及其位置。它可以帮助您找到行的位置。如果一本书的索引告诉你在哪个页面上你可以找到这个词。数据库索引具有相同的功能。

很多人提到索引是用b-tree实现的。但是,这只是一个实现细节。有很多方法来实现索引。

1

默认情况下,密钥在MS SQL Server中具有群集索引。

键是每行的唯一值。

索引用于最大限度地提高数据库性能。您可以根据您的要求创建索引。 有不同种类的索引 例如

  • 位图索引
  • 密集索引
  • 稀疏索引
  • 覆盖索引
4

甲密钥(声明)是一个制约因素。如果任何关键数据丢失,或者关键数据与表中已存在的行重复,它可以防止将行输入表中。

索引是一个数据结构,它允许在索引中使用的列(字段)的给定值一排或多排的快速查找。索引也可以用来加速某些其他种类的查询。例如,合并连接使用构成连接条件的两列上的索引(如果这两个索引都存在)。您的DBMS是否会执行合并连接取决于查询优化器,表的大小以及是否存在所需的索引。

混淆的问题一点,有些文献是指一个索引使用的“索引键”的列。相同的文献通常将主键和外键称为“逻辑键”。同样的文献经常将键称为表的逻辑特征,而索引称为表的物理特征。当您声明一个主键

大多数的DBMS会为你创建一个索引。这种行为有两个原因。首先是在没有索引的情况下检测重复记录需要很长时间才能在大表上进行。第二个是你可能会根据主键进行大量的查找,而且这些查找的运行速度比索引快得多。

2

一个关键字是唯一标识每一行的一个字段或一组字段。通常情况下,将会有一个键被指定为主键,现在这似乎是一个本身通常毫无意义的字段(非常像页码,这对于识别页面上的内容很重要)。

很可能有一个表,另一个表,这是所谓的外键的键。例如,在网上商店的数据库中,可能有一个订单表,每个订单都有一个关联的客户,因此订单表中的每一行都有一个用于客户表的外键。

索引是基于在表中,这允许基于这些字段的表快速访问的一个或多个字段的数据结构。该索引可以标识单个行(例如,客户电子邮件地址的索引),或者可以指示组(例如,客户的免税状态)。它非常类似于书籍的索引,或者像逆向目录(例如按电话号码排序的电话簿)。

的关键主要是考虑数据库(尽管它通常可以告诉密钥数据库,因此数据库可以拒绝行有重复键,例如)的方式。索引是一种使数据库工作更快的方法。

相关问题