Unikalny indeks Oracle

Unikalny Indeks Oracle



Wydajność bazy danych jest jedną z podstawowych ról programisty bazy danych. Zapewnienie, że baza danych działa z optymalną wydajnością, może znacząco wpłynąć na odczytywanie i zapisywanie danych przez aplikacje w tej bazie danych.

Chociaż istnieje wiele sposobów poprawy wydajności bazy danych, jedna funkcja jest prawie uniwersalna dla każdej bazy danych. Indeksy baz danych to struktury danych lub obiekty, które służą do zwiększenia szybkości pobierania danych z tabeli.

Prawidłowo używane indeksy bazy danych mogą zmniejszyć szybkość zapytania o prawie połowę, w zależności od danych docelowych, układu, dostępnych zasobów itp.







W tym samouczku dowiesz się, jak pracować z unikalnymi indeksami w bazach danych Oracle, aby zapobiec dostępności zduplikowanych wartości w indeksowanej kolumnie.



Unikalny indeks Oracle

Możemy użyć unikalnego indeksu, aby upewnić się, że w danej kolumnie nie są przechowywane zduplikowane wiersze. Jeśli kolumna danego indeksu zawiera unikalną regułę, próba dodania dwóch wierszy o podobnej wartości w tej kolumnie spowoduje błąd wskazujący na naruszenie ograniczenia unikalności.



W Oracle możemy utworzyć unikalny indeks za pomocą instrukcji CREATE UNIQUE INDEX, jak pokazano poniżej:





UTWÓRZ UNIKALNY INDEKS nazwa_indeksu NA nazwa_tabeli ( kolumny ) ;

Kolumny uwzględnione w indeksie nie akceptują zduplikowanych wierszy.

Przykład unikalnej ilustracji tabeli

Aby zademonstrować, jak utworzyć i używać unikalnego indeksu, skorzystaj z poniższej tabeli:



WYBIERAĆ * Z próbki_danych;

Wynik :

Utwórz unikalny indeks w kolumnie First_Name

Poniższa przykładowa instrukcja pokazuje, jak utworzyć unikatowy indeks przy użyciu kolumny imię:

utwórz unikalny indeks first_name_unique na sample_data ( Imię ) ;

Włączając ten indeks, nie możemy wstawić więcej niż jednego wiersza z tym samym imieniem.

Weźmy na przykład następującą instrukcję wstawiania:

wstaw do sample_data ( ID , imię, adres_ip, adres_btc, karta_kredytowa, identyfikator )
wartości ( jedenaście , „Wallas” , „169.158.70.77” , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

Jeśli uruchomimy podaną instrukcję wstawiania, powinniśmy otrzymać błąd, jak pokazano poniżej:

[ 23000 ] [ 1 ] ORA-00001: unikalne ograniczenie ( HR.FIRST_NAME_UNIQUE ) naruszone

Jak widać, wstawienie podanej wartości narusza ograniczenie unique dla kolumny imię.

Utwórz unikalny indeks z dwiema kolumnami

Możemy również mieć unikalny indeks, który składa się z więcej niż jednej kolumny. W poniższym przykładzie tworzymy unikalny indeks przy użyciu kolumn imię i adres:

utwórz unikalny indeks valid_columns na sample_data ( imię, adres_ip ) ;

Podobnie dodanie zduplikowanych wartości w kolumnie first_name lub ip_address spowoduje unikalne błędy naruszenia indeksu.

Automatyczne unikalne indeksy

Czy zastanawiałeś się kiedyś, co się stanie, gdy zadeklarujesz kolumnę tabeli z kluczem podstawowym lub ograniczeniem unikalności?

Mówiąc prościej, jeśli ustawisz kolumnę jako klucz podstawowy tabeli lub przypiszesz do danej kolumny ograniczenie unikalności, silnik bazy danych automatycznie utworzy unikalny indeks dla tej kolumny.

Dzięki temu w tej kolumnie nie zostanie wstawiona zduplikowana wartość.

Weźmy na przykład następujące stwierdzenie:

utwórz tabelę sample_data
(
ID numer,
imię  varchar2 ( pięćdziesiąt ) ,
adres_ip  varchar2 ( dwadzieścia ) ,
btc_address varchar2 ( pięćdziesiąt ) ,
karta_kredytowa varchar2 ( pięćdziesiąt ) ,
identyfikator varchar2 ( 40 ) ,
ograniczenie klucz podstawowy sample_pk ( ID )
) ;

W poprzednim przykładzie tworzymy tabelę i ustawiamy kolumnę id jako klucz podstawowy tabeli. Następnie, aby wyświetlić ograniczenie unikatowe powiązane z tą kolumną (generowane automatycznie), możemy uruchomić następujące polecenie:

Wybierz nazwa_indeksu, typ_indeksu, widoczność, stan, NAZWA_TABELI
z all_indexes, gdzie NAZWA_TABELI = 'PRZYKŁADOWE DANE' ;

Wyniki :
W tym przypadku możemy zobaczyć unikalny indeks, który jest tworzony przez silnik bazy danych dla kolumny id.

Wniosek

W tym przewodniku nauczyłeś się, jak tworzyć i używać unikalnych indeksów w bazie danych Oracle. Dowiedziałeś się również, co się stanie, gdy przypiszesz klucz podstawowy lub ograniczenie unikatowe do kolumny tabeli.