Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
327.17 Кб
Скачать

Оператор create index6

Создает новый индекс в существующей таблице. Формат

CREATE [ UNIQUE ] INDEX index ON table (field [ASC|DESC][, field [ASC|DESC], ...]) [WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]

Оператор CREATE INDEX имеет следующие части:

Часть

Описание

index

Имя создаваемого индекса

table

Имя существующей таблицы, в которой создается индекс

field

Имя индексируемого поля/полей. Перечисляются в скобках после имени таблицы (одно для простого, несколько для составного). Если указано DESC – индексируется по убыванию, иначе по возрастанию

Если значения поля/полей должны быть уникальны, используется служебное слово UNIQUE. В не обязательном выражении WITH указываются ограничения:

  • DISALLOW NULL – запретить значения Null в индексируемом поле/полях (обязательны для заполнения)

  • IGNORE NULL – исключить незаполненные поля из индексации

  • PRIMARY – использовать индекс как первичный ключ (индекс подразумевается уникальным, UNIQUE можно не указывать). При попытке создать в таблице второй первичный ключ происходит ошибка.

Можно использовать CREATE INDEX для создания псевдоиндекса в присоединенной таблице из ODBC-источника (например, SQL Server). Для этого не нужно разрешения или доступа к удаленному серверу, он не реагирует на создание псевдоиндекса. Формат оператора тот же. Это особенно полезно для таблиц, которые были бы «только для чтения» из-за отсутствия индекса.

Можно использовать ALTER TABLE для добавления индекса и ALTER TABLE или DROP для удаления индекса, созданного ALTER TABLE или CREATE INDEX.

Следующие запросы меняют таблицы в базе Northwind (если изменения нежелательны, нужно предварительно сделать копию). Запросы вводятся в SQL окне конструктора запросов, затем нужно выполнить запрос.

В таблице Employees создается индекс на основании полей Home Phone и Extension:

CREATE INDEX NewIndex ON Employees (HomePhone, Extension);

В таблице Customers создается уникальный индекс на основе поля CustomerID, поле обязательно для заполнения:

CREATE UNIQUE INDEX CustID ON Customers (CustomerID) WITH DISALLOW NULL;

Удалить созданный индекс можно оператором

DROP INDEX CustID ON Customers;

Его нельзя удалить в окне конструктора, пока не удалены связи таблицы Customers.

В следующем примере создается псевдоиндекс в присоединенной таблице OrderDetailsODBC

CREATE UNIQUE INDEX OrderID ON OrderDetailsODBC (OrderID);

Оператор drop7

Удаляет существующий индекс из таблицы или существующую таблицу из базы. Формат

DROP {TABLE table | INDEX index ON table}

Оператор DROP имеет следующие части:

Часть

Описание

table

Имя удаляемой таблицы или таблицы, из которой удаляется индекс

index

Имя удаляемого индекса

Прежде чем удалять индекс или саму таблицу, ее нужно запрыть. Удалить индекс можно оператором ALTER TABLE.

В следующих примерах предполагается наличие индекса NewIndex в таблице Employees базы Northwind. Запросы меняют таблицы в базе Northwind (если изменения нежелательны, нужно предварительно сделать копию).

Удалить индекс NewIndex из таблицы Employees:

DROP INDEX MyIndex ON Employees;

Удалить таблицу Employees из базы:

DROP TABLE Trainees;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]