SQLite Создать и удалить индекс
Вступление
Индекс - это специальная структура данных, которая хранит значения для всего столбца (или столбцов) высокоорганизованным способом, оптимизированным для поиска.
Индексы (или индексы) очень специфичны для поиска в базе данных, потому что это позволяет найти определенные строки в таблице без необходимости сканировать каждую строку в таблице. Следовательно, индексы могут обеспечить значительное повышение производительности для некоторых типов запросов. Индексы всегда связаны только с одной таблицей, но в индексы может быть включено больше столбцов таблицы.
Обычно индексы могут допускать дублирование значений, но ключевое слово 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 программирования