70 lines
1.7 KiB
Markdown
70 lines
1.7 KiB
Markdown
|
---
|
||
|
title: SQL CREATE INDEX Statement
|
||
|
---
|
||
|
|
||
|
The CREATE INDEX statement is used to create indexes in tables.
|
||
|
|
||
|
Indexes are used to retrieve data from the database very fast. The users cannot see the indexes, they are just used to speed up searches/queries.
|
||
|
|
||
|
> **Note:** Updating a table with indexes takes more time than updating a table without (because the indexes also need an update). So, only create indexes on columns that will be frequently searched against.
|
||
|
|
||
|
#### CREATE INDEX Syntax
|
||
|
|
||
|
Creates an index on a table. Duplicate values are allowed:
|
||
|
|
||
|
```sql
|
||
|
CREATE INDEX index_name
|
||
|
ON table_name (column1, column2, ...);
|
||
|
```
|
||
|
|
||
|
#### CREATE UNIQUE INDEX Syntax
|
||
|
|
||
|
Creates a unique index on a table. Duplicate values are not allowed:
|
||
|
|
||
|
```sql
|
||
|
CREATE UNIQUE INDEX index_name
|
||
|
ON table_name (column1, column2, ...);
|
||
|
```
|
||
|
|
||
|
> **Note:** The syntax for creating indexes varies among different databases. Therefore: Check the syntax for creating indexes in your database.
|
||
|
|
||
|
#### CREATE INDEX Example
|
||
|
|
||
|
The SQL statement below creates an index named "idx_lastname" on the "LastName" column in the "Persons" table:
|
||
|
|
||
|
```sql
|
||
|
CREATE INDEX idx_lastname
|
||
|
ON Persons (LastName);
|
||
|
```
|
||
|
|
||
|
If you want to create an index on a combination of columns, you can list the column names within the parentheses, separated by commas:
|
||
|
CREATE INDEX idx_pname
|
||
|
|
||
|
```sql
|
||
|
ON Persons (LastName, FirstName);
|
||
|
```
|
||
|
|
||
|
#### DROP INDEX Statement
|
||
|
|
||
|
The DROP INDEX statement is used to delete an index in a table.
|
||
|
|
||
|
**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;
|
||
|
```
|