Создание индексов

Индексы для уже существующих таблиц можно создавать с помощью операторов CREATE INDEX и ALTER TABLE.

С помощью оператора CREATE INDEX можно создать только обычный индекс и индекс UNIQUE. Оператор ALTER TABLE позволяет создавать индекс PRIMARY KEY.

Синтаксис оператора ALTER TABLE:

MySQL:
ALTER TABLE <tbl_name> ADD {INDEX|UNIQUE} <index_name> (<column_list>)
ALTER TABLE <tbl_name> ADD PRIMARY KEY (<column_list>)

MS SQL:
ALTER TABLE <tbl_name> ADD CONSTRAINT <index_name> { PRIMARY KEY | UNIQUE }
ON (<column_list>,... )]

Здесь tbl_name — имя индексируемой таблицы, column_list — список индексируемых столбцов. Если индекс состоит из нескольких столбцов, они разделяются в списке запятыми.

Имя индекса index_name можно не указывать. В случае его отсутствия индексу будет присвоено имя первого индексируемого столбца. Оператор ALTER TABLE позволяет создавать сразу несколько индексов одним оператором.

Синтаксис оператора CREATE INDEX:

CREATE [UNIQUE] INDEX <index_name> ON <tbl_name> (<col_name>,... )

Параметры tbl_name, index_name и column_list имеют значение, аналогичное значению, принятому для оператора ALTER TABLE. Но в операторе CREATE INDEX параметр index_name является обязательным.

IDevice IconПример
Создать в таблице tbl_client уникальный индекс по полю phone 
MS SQL:
CREATE UNIQUE INDEX client_phone ON tbl_clients(phone)

или
ALTER TABLE tbl_clients ADD CONSTRAINT client_phonе UNIQUE ON (phone)
MySQL:
CREATE UNIQUE INDEX client_phone ON tbl_clients(phone)

или
ALTER TABLE tbl_clients ADD UNIQUE client_phonе (phone)