Уникален индекс на Oracle

Unikalen Indeks Na Oracle



Производителността на базата данни е една от основните роли на разработчика на база данни. Гарантирането, че вашата база данни работи с оптимална производителност, може значително да повлияе на приложенията, които четат или записват в тази база данни.

Въпреки че съществуват множество начини за подобряване на производителността на базата данни, една функция е почти универсална за всяка база данни. Индексите на бази данни са структури от данни или обекти, които се използват за подобряване на скоростта на извличане на данни от таблицата.

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







В този урок ще научите как да работите с уникални индекси в бази данни на Oracle, за да предотвратите наличието на дублиращи се стойности в индексирана колона.



Уникален индекс на Oracle

Можем да използваме уникален индекс, за да гарантираме, че в дадена колона не се съхраняват дублиращи се редове. Ако колоната на даден индекс съдържа уникално правило, опитът за добавяне на два реда с подобна стойност в тази колона ще доведе до грешка, която показва нарушение на уникалното ограничение.



В Oracle можем да създадем уникален индекс с помощта на оператора CREATE UNIQUE INDEX, както е показано по-долу:





CREATE UNIQUE INDEX index_name ON table_name ( колони ) ;

Колоните, които са включени в индекса, няма да приемат дублирани редове.

Пример за уникална илюстрация на таблица

За да демонстрирате как да създадете и използвате уникален индекс, вземете следната таблица:



ИЗБЕРЕТЕ * ОТ примерни_данни;

Изход :

Създайте уникален индекс в колоната First_Name

Следният примерен израз показва как да създадете уникален индекс с помощта на колоната first_name:

създайте уникален индекс first_name_unique върху sample_data ( първо име ) ;

Като активираме този индекс, не можем да вмъкнем повече от един ред с едно и също име.

Вземете например следния израз за вмъкване:

вмъкнете в sample_data ( документ за самоличност , собствено_име, ip_адрес, btc_адрес, кредитна_карта, идентификатор )
стойности ( единадесет , 'Wallas' , '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 ( first_name, ip_address ) ;

По подобен начин добавянето на дублирани стойности за колоната first_name или ip_address ще доведе до уникални грешки при нарушение на индекса.

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

Чудили ли сте се някога какво се случва, когато декларирате колона на таблица с първичен ключ или уникално ограничение?

С прости думи, ако зададете колона като първичен ключ на таблицата или присвоите уникално ограничение на дадена колона, машината на базата данни автоматично създава уникален индекс за тази колона.

Това гарантира, че в тази колона няма вмъкната дублирана стойност.

Вземете например следното твърдение:

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

В предишния пример създаваме таблица и задаваме колоната id като първичен ключ на таблицата. След това, за да видим уникалното ограничение, свързано с тази колона (автоматично генерирано), можем да изпълним следната команда:

изберете име_на_индекс, тип_на_индекс, видимост, състояние, TABLE_NAME
от всички_индекси, където TABLE_NAME = „SAMPLE_DATA“ ;

Резултати :
В този случай можем да видим уникалния индекс, който е създаден от двигателя на базата данни за колоната id.

Заключение

В това ръководство научихте как да създавате и използвате уникалните индекси в базата данни на Oracle. Освен това научихте какво се случва, когато присвоите първичен ключ или уникално ограничение на колона в таблица.