кодесурса
«SQLite

SQLite Создать и удалить индекс

script1adsense2code
script1adsense3code

Вступление

Индекс - это специальная структура данных, которая хранит значения для всего столбца (или столбцов) высокоорганизованным способом, оптимизированным для поиска.

Индексы (или индексы) очень специфичны для поиска в базе данных, потому что это позволяет найти определенные строки в таблице без необходимости сканировать каждую строку в таблице. Следовательно, индексы могут обеспечить значительное повышение производительности для некоторых типов запросов. Индексы всегда связаны только с одной таблицей, но в индексы может быть включено больше столбцов таблицы.

Обычно индексы могут допускать дублирование значений, но ключевое слово UNIQUE ограничивает дублирование при любой попытке вставить или обновить таблицу с неуникальным значением. Так как NULL не считается значением, индекс UNIQUE не помешает одному или нескольким NULL. Чтобы предотвратить NULL, вы должны указать NOT NULL в исходном определении таблицы.

Удаление индекса приведет к удалению индекса из базы данных, но связанная таблица останется нетронутой.

Синтаксис:

 CREATE [UNIQUE] INDEX index_name ON table_name (column_name [, ...]);

Параметры:

index_name - имя индекса.

table_name - имя таблицы, с которой связан индекс.

column_name - имя столбца (ов)

Создать индекс:

Создание индекса по столбцу

Здесь мы создаем столовую компанию.

CREATE TABLE company(
com_id text(4),
com_name text(15));

Здесь мы добавили индекс с именем com_id_index в столбец «com_id» таблицы компании. Вот утверждение.

CREATE INDEX com_id_index ON company (com_id);

Создать индекс по нескольким столбцам

Теперь мы хотим добавить индекс с именем com_id_name в столбцы «com_id» и «com_name»:

CREATE INDEX com_id_name ON company (com_id,com_name);

Этот тип индекса называется композитным индексом, потому что два или более столбцов совместно составляют этот тип индекса.

Создать УНИКАЛЬНЫЙ Индекс

Если вы хотите добавить индекс с именем unique_com_id в столбец com_id таблицы компании, можно использовать следующий оператор.

CREATE UNIQUE INDEX unique_com_id ON company (com_id,com_name);

После создания индекса UNIQUE, если вы пытаетесь вставить запись в таблицу, которая уже существует в индексе UNIQUE, это приводит к сообщению об ошибке. В уникальном индексе не может быть повторяющихся записей.

Вот несколько примеров:

 sqlite> ВСТАВЬТЕ В ЦЕННОСТИ компании («com_001», «company-1»);
sqlite> ВСТАВЬТЕ В ЦЕННОСТИ компании ('com_002', 'company-2');
sqlite> ВСТАВЬТЕ В ЦЕННОСТИ компании («com_001», «company-1»);
Ошибка: не удалось выполнить ограничение UNIQUE: company.com_id, company.com_name	

Здесь, в приведенном выше, вы можете видеть, что уникальность определяется обоими столбцами совместно, а не индивидуально, и здесь уникальность нарушается.

Вот список индексов, созданных на столе компании:

 sqlite> .indices компания
com_id_index
com_id_name
unique_com_id

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

 sqlite> SELECT * FROM sqlite_master WHERE type = 'index';
имя типа tbl_name корневая страница sql
---------------------- ------------------ ---------- ---------- ---------------------------------------- -----
index com_id_index company 3 CREATE INDEX com_id_index ON company (com_id)
index com_id_name company 4 CREATE INDEX com_id_name ON company (com_id, c
index unique_com_id company 5 СОЗДАТЬ УНИКАЛЬНЫЙ ИНДЕКС unique_com_id ON company (

сличение

Ключевое слово COLLATE используется, чтобы сделать столбец без учета регистра связанным с индексом. Это означает, что значения в индексированном столбце будут отсортированы без учета регистра.

Если вы хотите создать регистрозависимый индекс для com_name, можно использовать следующий оператор индекса.

CREATE INDEX com_name_collate on company (com_name COLLATE NOCASE);

Чтобы получить подробную информацию для таблицы компании, используйте следующую команду:

 sqlite> .схема компания
CREATE TABLE company (
com_id text (4),
текст com_name (15));
CREATE INDEX com_id_index ON компании (com_id);
CREATE INDEX com_id_name ON компании (com_id, com_name);
СОЗДАТЬ УНИКАЛЬНЫЙ ИНДЕКС unique_com_id ПО компании (com_id, com_name);
CREATE INDEX com_name_collate для компании (com_name COLLATE NOCASE);

Drop Index

Команда DROP INDEX удалит индекс из базы данных, но оставит связанную таблицу без изменений.

Синтаксис:

 DROP INDEX index_name;

Пример:

Если вы хотите удалить индекс com_name_collate из базы данных, можно использовать следующее.

DROP INDEX com_name_collate;

 

Предыдущая: скованность
Следующий: Оператор SELECT

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


disqus2code