SQL循序渐进(18)索引


索引

索引允许DBMS更快地访问数据。系统创建了这个内部地数据结构(即索引),它导致当查询以列为索引的时候搜索行,这样查询会快得多。这个索引对于给定列索引数值的时通知DBMS找到表中某一行,这有点象书的索引,它告诉你对于给定的字你能找到哪一页。 下面让我们在AntiqueOwners列中为OwnerID创建索引:

CREATE INDEX OID_IDX ON ANTIQUEOWNERS (OWNERID);

下面语句是为名字创建所以:

CREATE INDEX NAME_IDX ON ANTIQUEOWNERS (OWNERLASTNAME, OWNERFIRSTNAME);

为了删除索引,你可以利用DROP:

DROP INDEX OID_IDX;

就象前面教程中,我们也可以"drop"(删除)一个表。上面第二个例子中,是在两列上创建索引的。

有些DBMS不强迫要求主键,换句话说就是,类的唯一性不会自动强制。这是什么意思呢,好象听起来云里雾里的。好吧,再给你举个例子,如果你象插入另外一行到AntiqueOwners表中,比如这个OwnerID是02,有些系统可以让你这样做即使我们要求所有行的数值都要是不同的。为了避免两行有相同的值,我们有一种方法来克服,就是在列上创建唯一的索引,而在这个列上我们需要它成为主键,这样就可以系统不会出现复制的情况:

CREATE UNIQUE INDEX OID_IDX ON ANTIQUEOWNERS (OWNERID);

Published At
Categories with 数据库类
comments powered by Disqus