Oracle unikālais indekss

Oracle Unikalais Indekss



Datu bāzes veiktspēja ir viena no svarīgākajām datu bāzes izstrādātāja lomām. Nodrošinot, ka jūsu datu bāze darbojas ar optimālu veiktspēju, var būtiski ietekmēt lietojumprogrammu lasīšanu vai rakstīšanu šajā datu bāzē.

Lai gan pastāv daudzi veidi, kā uzlabot datu bāzes veiktspēju, viena funkcija ir gandrīz universāla jebkurai datu bāzei. Datu bāzes indeksi ir datu struktūras vai objekti, ko izmanto, lai palielinātu datu izguves ātrumu no tabulas.

Ja tos izmanto pareizi, datu bāzes indeksi var samazināt vaicājuma ātrumu gandrīz uz pusi atkarībā no mērķa datiem, izkārtojuma, pieejamajiem resursiem utt.







Šajā apmācībā jūs uzzināsit, kā strādāt ar unikāliem indeksiem Oracle datu bāzēs, lai novērstu vērtību dublikātu pieejamību indeksētā kolonnā.



Oracle unikālais indekss

Mēs varam izmantot unikālu indeksu, lai nodrošinātu, ka noteiktā kolonnā netiek saglabātas dublētas rindas. Ja noteiktā indeksa kolonnā ir unikāls noteikums, mēģinot šajā kolonnā pievienot divas rindas ar līdzīgu vērtību, tiks parādīta kļūda, kas norāda uz unikāla ierobežojuma pārkāpumu.



Programmā Oracle mēs varam izveidot unikālu indeksu, izmantojot priekšrakstu CREATE UNIQUE INDEX, kā parādīts tālāk.





IZVEIDOT UNIKĀLU INDEKSU indeksa_nosaukums UZ tabulas_nosaukums ( kolonnas ) ;

Kolonnas, kas ir iekļautas rādītājā, nepieņems rindu dublikātus.

Unikālas tabulas ilustrācijas piemērs

Lai parādītu, kā izveidot un izmantot unikālu indeksu, izmantojiet šo tabulu:



ATLASĪT * NO parauga_dati;

Izvade :

Izveidojiet unikālu indeksu kolonnā First_Name

Šis piemēra paziņojums parāda, kā izveidot unikālu indeksu, izmantojot kolonnu first_name:

izveidot unikālu indeksu first_name_unique uz sample_data ( vārds ) ;

Iespējojot šo indeksu, mēs nevaram ievietot vairāk kā vienu rindu ar vienu un to pašu vārdu.

Ņemiet, piemēram, šādu ievietošanas paziņojumu:

ievietot parauga_datos ( id , vārds_vārds, ip_adrese, btc_adrese, kredītkarte, identifikators )
vērtības ( vienpadsmit , 'Wallas' , '169.158.70.77' , “1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q” , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

Ja palaižam norādīto ievietošanas paziņojumu, mums vajadzētu saņemt kļūdu, kā parādīts tālāk:

[ 23 000 ] [ 1 ] ORA-00001: unikāls ierobežojums ( HR.FIRST_NAME_UNIQUE ) pārkāpts

Kā redzam, norādītās vērtības ievietošana pārkāpj kolonnas first_name unikālo ierobežojumu.

Izveidojiet unikālu indeksu ar divām kolonnām

Mums var būt arī unikāls indekss, kas sastāv no vairāk nekā vienas kolonnas. Nākamajā piemērā mēs izveidojam unikālu indeksu, izmantojot kolonnas first_name un io_address:

izveidot unikālu indeksu verify_columns uz sample_data ( vārds_vārds, ip_adrese ) ;

Līdzīgi, pievienojot dublētās vērtības kolonnai first_name vai ip_address, radīsies unikālas indeksa pārkāpuma kļūdas.

Automātiski unikālie indeksi

Vai esat kādreiz domājis, kas notiek, kad deklarējat tabulas kolonnu ar primāro atslēgu vai unikālu ierobežojumu?

Vienkārši izsakoties, ja iestatāt kolonnu kā tabulas primāro atslēgu vai piešķirat šai kolonnai unikālu ierobežojumu, datu bāzes programma automātiski izveido šai kolonnai unikālu indeksu.

Tas nodrošina, ka šajā kolonnā netiek ievietota dublēta vērtība.

Ņemiet, piemēram, šādu paziņojumu:

izveidot tabulu paraug_dati
(
id numurs,
vārds_vārds varchar2 ( piecdesmit ) ,
ip_adrese varchar2 ( divdesmit ) ,
btc_address varchar2 ( piecdesmit ) ,
kredītkarte varchar2 ( piecdesmit ) ,
identifikators varchar2 ( 40 ) ,
ierobežojums sample_pk primārā atslēga ( id )
) ;

Iepriekšējā piemērā mēs izveidojam tabulu un iestatām id kolonnu kā tabulas primāro atslēgu. Pēc tam, lai skatītu unikālo ierobežojumu, kas saistīts ar šo kolonnu (automātiski ģenerēts), mēs varam palaist šādu komandu:

izvēlieties indeksa_nosaukums, indeksa_veids, redzamība, statuss, TABLE_NAME
no all_indexes kur TABLE_NAME = 'SAMPLE_DATA' ;

Rezultāti :
Šajā gadījumā mēs varam redzēt unikālo indeksu, ko id kolonnai izveido datu bāzes dzinējs.

Secinājums

Šajā rokasgrāmatā jūs uzzinājāt, kā izveidot un izmantot unikālos indeksus Oracle datubāzē. Jūs arī uzzinājāt, kas notiek, ja tabulas kolonnai piešķirat primāro atslēgu vai unikālu ierobežojumu.