74 lines
1.5 KiB
Markdown
74 lines
1.5 KiB
Markdown
---
|
||
title: SQL CREATE INDEX Statement
|
||
localeTitle: SQL CREATE INDEX语句
|
||
---
|
||
CREATE INDEX语句用于在表中创建索引。
|
||
|
||
索引用于非常快速地从数据库中检索数据。用户无法看到索引,它们只是用于加速搜索/查询。
|
||
|
||
> **注意:**使用索引更新表比没有表更新表需要更多时间(因为索引也需要更新)。因此,只在经常搜索的列上创建索引。
|
||
|
||
#### CREATE INDEX语法
|
||
|
||
在表上创建索引。允许重复的值:
|
||
|
||
```sql
|
||
CREATE INDEX index_name
|
||
ON table_name (column1, column2, ...);
|
||
```
|
||
|
||
#### CREATE UNIQUE INDEX语法
|
||
|
||
在表上创建唯一索引。不允许重复值:
|
||
|
||
```sql
|
||
CREATE UNIQUE INDEX index_name
|
||
ON table_name (column1, column2, ...);
|
||
```
|
||
|
||
> **注意:**创建索引的语法因不同的数据库而异。因此:检查在数据库中创建索引的语法。
|
||
|
||
#### CREATE INDEX示例
|
||
|
||
下面的SQL语句在“Persons”表的“LastName”列中创建名为“idx\_lastname”的索引:
|
||
|
||
```sql
|
||
CREATE INDEX idx_lastname
|
||
ON Persons (LastName);
|
||
```
|
||
|
||
如果要在列组合上创建索引,可以在括号中列出列名,用逗号分隔: CREATE INDEX idx\_pname
|
||
|
||
```sql
|
||
ON Persons (LastName, FirstName);
|
||
```
|
||
|
||
#### DROP INDEX声明
|
||
|
||
DROP INDEX语句用于删除表中的索引。
|
||
|
||
**MS Access:**
|
||
|
||
```sql
|
||
DROP INDEX index_name ON table_name;
|
||
```
|
||
|
||
**SQL Server:**
|
||
|
||
```sql
|
||
DROP INDEX table_name.index_name;
|
||
```
|
||
|
||
**DB2 / Oracle数据库:**
|
||
|
||
```sql
|
||
DROP INDEX index_name;
|
||
```
|
||
|
||
**MySQL的:**
|
||
|
||
```sql
|
||
ALTER TABLE table_name
|
||
DROP INDEX index_name;
|
||
|
||
``` |