T-SQL Tutorial

SQL CREATE INDEX


An index in SQL Server is a data structure that improves the performance of queries by allowing the database management system to quickly locate and retrieve the requested data. To create an index in SQL Server, you can use the CREATE INDEX statement.


Create Index Syntax:

The basic syntax for creating an index is as follows:

CREATE INDEX index_name
ON table_name (column_name)

Create Unique Index Syntax:

CREATE [UNIQUE] INDEX index_name
ON table_name (column_name)

UNIQUE specifies that the index enforces uniqueness on the indexed columns.
index_name the name of the index.
table_name the name of the table on which the index is being created.
column_name the list of columns that are included in the index.

For example, to create a non-unique index on the "LastName" column of the "Employees" table, you can use the following command:

CREATE INDEX IX_Employees_LastName
ON Employees (LastName)

You can also create a CLUSTERED INDEX which determines the physical order of data in a table and it can be created on only one column.

CREATE CLUSTERED INDEX IX_Employees_EmpID
ON Employees (EmpID)

You can also CREATE NONCLUSTERED INDEX which does not determine the physical order of data in a table and can be created on multiple columns.

CREATE NONCLUSTERED INDEX IX_Employees_LastName_FirstName
ON Employees (LastName, FirstName)

It's important to note that creating too many indexes on a table can negatively impact performance, as they must be maintained and updated whenever data in the table is modified. Therefore, it's important to only create indexes on columns that are frequently searched or sorted in queries.