Oracle Unique Index

Oracle Unique Index



Učinkovitost baze podatkov je ena bistvenih vlog razvijalca baze podatkov. Zagotavljanje, da vaša zbirka podatkov deluje z optimalno zmogljivostjo, lahko znatno vpliva na branje ali pisanje aplikacij v to bazo podatkov.

Čeprav obstajajo številni načini za izboljšanje zmogljivosti baze podatkov, je ena funkcija skoraj univerzalna za vsako bazo podatkov. Indeksi baz podatkov so podatkovne strukture ali objekti, ki se uporabljajo za izboljšanje hitrosti pridobivanja podatkov iz tabele.

Če se pravilno uporabljajo, lahko indeksi baze podatkov zmanjšajo hitrost poizvedbe za skoraj polovico, odvisno od ciljnih podatkov, postavitve, razpoložljivih virov itd.







V tej vadnici se boste naučili, kako delati z edinstvenimi indeksi v bazah podatkov Oracle, da preprečite razpoložljivost podvojenih vrednosti v indeksiranem stolpcu.



Oracle Unique Index

Uporabimo lahko edinstven indeks, da zagotovimo, da v določenem stolpcu niso shranjene podvojene vrstice. Če stolpec danega indeksa vsebuje edinstveno pravilo, bo poskus dodajanja dveh vrstic s podobno vrednostjo v ta stolpec povzročil napako, ki kaže na kršitev edinstvene omejitve.



V Oraclu lahko ustvarimo edinstven indeks z uporabo stavka CREATE UNIQUE INDEX, kot je prikazano v nadaljevanju:





CREATE UNIQUE INDEX index_name ON table_name ( stolpce ) ;

Stolpci, ki so vključeni v indeks, ne bodo sprejeli nobenih podvojenih vrstic.

Primer edinstvene ilustracije tabele

Če želite prikazati, kako ustvariti in uporabiti edinstven indeks, vzemite naslednjo tabelo:



IZBERI * FROM vzorčni_podatki;

Izhod :

Ustvarite enolični indeks v stolpcu First_Name

Naslednji primer izjave prikazuje, kako ustvariti edinstven indeks z uporabo stolpca first_name:

ustvari edinstveni indeks first_name_unique na sample_data ( ime ) ;

Če omogočite ta indeks, ne moremo vstaviti več kot ene vrstice z istim imenom.

Vzemimo za primer naslednji stavek za vstavljanje:

vstavite v sample_data ( id , first_name, ip_address, btc_address, credit_card, identifikator )
vrednote ( enajst , 'Wallas' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

Če zaženemo dani stavek za vstavljanje, bi morali dobiti napako, kot je prikazano v naslednjem:

[ 23000 ] [ 1 ] ORA-00001: edinstvena omejitev ( HR.FIRST_NAME_UNIQUE ) kršena

Kot lahko vidimo, vstavljanje podane vrednosti krši enolično omejitev za stolpec first_name.

Ustvarite edinstven indeks z dvema stolpcema

Lahko imamo tudi edinstven indeks, ki je sestavljen iz več kot enega stolpca. V naslednjem primeru ustvarimo edinstven indeks z uporabo stolpcev first_name in io_address:

ustvari edinstven indeks verify_columns na sample_data ( first_name, ip_address ) ;

Podobno bo dodajanje podvojenih vrednosti za stolpec first_name ali ip_address povzročilo edinstvene napake kršitve indeksa.

Samodejni edinstveni indeksi

Ste se kdaj vprašali, kaj se zgodi, ko deklarirate stolpec tabele s primarnim ključem ali edinstveno omejitvijo?

Preprosto povedano, če nastavite stolpec kot primarni ključ tabele ali danemu stolpcu dodelite edinstveno omejitev, mehanizem zbirke podatkov samodejno ustvari edinstven indeks za ta stolpec.

To zagotavlja, da v ta stolpec ni vstavljena podvojena vrednost.

Vzemimo za primer naslednjo izjavo:

ustvari tabelo sample_data
(
id številka,
ime_varchar2 ( petdeset ) ,
ip_naslov  varchar2 ( dvajset ) ,
btc_naslov varchar2 ( petdeset ) ,
kreditna_kartica varchar2 ( petdeset ) ,
identifikator  varchar2 ( 40 ) ,
primarni ključ omejitve sample_pk ( id )
) ;

V prejšnjem primeru ustvarimo tabelo in nastavimo stolpec id kot primarni ključ tabele. Nato lahko za ogled enolične omejitve, povezane s tem stolpcem (samodejno ustvarjeno), zaženemo naslednji ukaz:

izberite ime_indeksa, vrsta_indeksa, vidnost, status, TABLE_NAME
iz vseh_indeksov, kjer je TABLE_NAME = 'SAMPLE_DATA' ;

Rezultati :
V tem primeru lahko vidimo edinstveni indeks, ki ga ustvari mehanizem zbirke podatkov za stolpec id.

Zaključek

V tem priročniku ste se naučili, kako ustvariti in uporabljati edinstvene indekse v bazi podatkov Oracle. Naučili ste se tudi, kaj se zgodi, ko stolpcu tabele dodelite primarni ključ ali edinstveno omejitev.