INDEX
索引 (Index) 可以帮助我们从表格中快速地找到需要的资料。举例来说,假设我们要在一本
园艺书中找如何种植青椒的讯息。若这本书没有索引的话,那我们是必须要从头开始读,直
到我们找到有关种直青椒的地方为止。若这本书有索引的话,我们就可以先去索引找出种植
青椒的信息是在哪一页,然后直接到那一页去阅读。很明显地,运用索引是一种有效且省时
的方式。
从数据库表格中寻找资料也是同样的原理。如果一个表格没有索引的话,数据库系统就需要
将整个表格的资料读出 (这个过程叫做'table scan')。若有适当的索引存在,数据库系统就可
以先由这个索引去找出需要的资料是在表格的什么地方,然后直接去那些地方抓资料。这样
子速度就快多了。
因此,在表格上建立索引是一件有利于系统效率的事。一个索引可以涵盖一或多个栏位。建
立索引的语法如下:
CREATE INDEX "INDEX_NAME" ON "TABLE_NAME" (COLUMN_NAME)
现在假设我们有以下这个表格,
TABLE Customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date);
若我们要在 Last_Name 这个栏位上建一个索引,我们就打入以下的指令,
CREATE INDEX IDX_CUSTOMER_LAST_NAME on CUSTOMER (Last_Name);
我们要在 City 及 Country 这两个栏位上建一个索引,我们就打入以下的指令,
CREATE INDEX IDX_CUSTOMER_LOCATION on CUSTOMER (City, Country)
索引的命名并没有一个固定的方式。通常会用的方式是在名称前加一个字首,例如
"IDX_" ,来避免与数据库中的其他物件混淆。另外,在索引名之内包括表格名及栏位名也
是一个好的方式。
注意,每个数据库会有它本身的 CREATE INDEX 语法,而不同数据库的语法会有
不同。因此,在下指令前,请先由数据库使用手册中确认正确的语法。