Уникальный индекс Oracle

Unikal Nyj Indeks Oracle



Производительность базы данных — одна из важнейших ролей разработчика базы данных. Обеспечение оптимальной производительности базы данных может существенно повлиять на чтение или запись приложений в эту базу данных.

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

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







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



Уникальный индекс Oracle

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



В Oracle мы можем создать уникальный индекс с помощью инструкции CREATE UNIQUE INDEX, как показано ниже:





СОЗДАТЬ УНИКАЛЬНЫЙ ИНДЕКС index_name ON table_name ( столбцы ) ;

Столбцы, включенные в индекс, не будут содержать повторяющихся строк.

Пример уникальной иллюстрации таблицы

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



ВЫБРАТЬ * ИЗ Sample_data;

Вывод :

Создайте уникальный индекс для столбца First_Name

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

создать уникальный индекс first_name_unique для sample_data ( имя ) ;

Включив этот индекс, мы не сможем вставить более одной строки с одним и тем же именем.

Возьмем, к примеру, следующий оператор вставки:

вставить в sample_data ( я бы , first_name, ip_address, btc_address, кредитная_карта, идентификатор )
ценности ( одиннадцать , «Валлас» , «169.158.70.77» , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

Если мы запустим данный оператор вставки, мы должны получить ошибку, как показано ниже:

[ 23000 ] [ 1 ] ORA-00001: уникальное ограничение ( HR.FIRST_NAME_UNIQUE ) нарушен

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

Создайте уникальный индекс с двумя столбцами

У нас также может быть уникальный индекс, состоящий из более чем одного столбца. В следующем примере мы создаем уникальный индекс, используя столбцы first_name и io_address:

создать уникальный индекс verify_columns для sample_data ( первое_имя, ip_адрес ) ;

Точно так же добавление повторяющихся значений для столбца first_name или ip_address приведет к ошибкам нарушения уникальности индекса.

Автоматические уникальные индексы

Вы когда-нибудь задумывались, что происходит, когда вы объявляете столбец таблицы с первичным ключом или уникальным ограничением?

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

Это гарантирует, что в этот столбец не будет вставлено повторяющееся значение.

Возьмем, к примеру, следующее утверждение:

создать таблицу sample_data
(
я бы количество,
имя_имя varchar2 ( 50 ) ,
ip_адрес  varchar2 ( двадцать ) ,
btc_address varchar2 ( 50 ) ,
кредитная_карта varchar2 ( 50 ) ,
идентификатор varchar2 ( 40 ) ,
ограничение первичный ключ sample_pk ( я бы )
) ;

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

Выбрать index_name, index_type, видимость, статус, TABLE_NAME
из all_indexes, где TABLE_NAME = 'ОБРАЗЕЦ ДАННЫХ' ;

Результаты :
В этом случае мы можем увидеть уникальный индекс, созданный механизмом базы данных для столбца id.

Заключение

В этом руководстве вы узнали, как создавать и использовать уникальные индексы в базе данных Oracle. Вы также узнали, что происходит, когда вы назначаете первичный ключ или уникальное ограничение столбцу таблицы.