Oracle unieke index

Oracle Unieke Index



Databaseprestaties zijn een van de essentiële rollen van een databaseontwikkelaar. Ervoor zorgen dat uw database optimaal presteert, kan een aanzienlijke invloed hebben op de applicaties die naar die database lezen of schrijven.

Hoewel er talloze manieren zijn om de prestaties van de database te verbeteren, is één functie bijna universeel voor elke database. Database-indexen zijn gegevensstructuren of objecten die worden gebruikt om de snelheid van het ophalen van gegevens uit de tabel te verbeteren.

Bij correct gebruik kunnen database-indexen de snelheid van een query met bijna de helft verminderen, afhankelijk van de doelgegevens, lay-out, beschikbare bronnen, enz.







In deze zelfstudie leert u hoe u met unieke indexen in Oracle-databases kunt werken om de beschikbaarheid van dubbele waarden in een geïndexeerde kolom te voorkomen.



Oracle unieke index

We kunnen een unieke index gebruiken om ervoor te zorgen dat er geen dubbele rijen in een bepaalde kolom worden opgeslagen. Als de kolom van een bepaalde index een unieke regel bevat, zal een poging om twee rijen met een vergelijkbare waarde in die kolom toe te voegen resulteren in een fout die een unieke beperkingsschending aangeeft.



In Oracle kunnen we een unieke index maken met behulp van de instructie CREATE UNIQUE INDEX, zoals hieronder weergegeven:





CREËER EEN UNIEKE INDEX index_name OP table_name ( kolommen ) ;

De kolommen die zijn opgenomen in de index accepteren geen dubbele rijen.

Voorbeeld van unieke tabelillustratie

Neem de volgende tabel om te demonstreren hoe u een unieke index maakt en gebruikt:



SELECTEER * VAN sample_data;

Uitgang :

Maak een unieke index op de kolom First_Name

De volgende voorbeeldinstructie laat zien hoe u een unieke index kunt maken met behulp van de kolom first_name:

maak een unieke index first_name_unique op sample_data ( Voornaam ) ;

Door deze index in te schakelen, kunnen we niet meer dan één rij met dezelfde voornaam invoegen.

Neem bijvoorbeeld de volgende insert-opdracht:

invoegen in sample_data ( ID kaart , first_name, ip_address, btc_address, credit_card, identifier )
waarden ( elf , 'Wallas' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

Als we de gegeven insert-instructie uitvoeren, zouden we een foutmelding moeten krijgen zoals hieronder getoond:

[ 23000 ] [ 1 ] ORA-00001: unieke beperking ( HR.FIRST_NAME_UNIQUE ) geschonden

Zoals we kunnen zien, schendt het invoegen van de gegeven waarde de unieke beperking voor de kolom first_name.

Maak een unieke index met twee kolommen

We kunnen ook een unieke index hebben die uit meer dan één kolom bestaat. In het volgende voorbeeld maken we een unieke index met de kolommen first_name en io_address:

maak een unieke index verifiëren_kolommen op sample_data ( voornaam, ip_adres ) ;

Evenzo resulteert het toevoegen van dubbele waarden voor de kolom first_name of ip_address in unieke indexschendingsfouten.

Automatische unieke indexen

Heb je je ooit afgevraagd wat er gebeurt als je een tabelkolom declareert met een primaire sleutel of unieke beperking?

Eenvoudig gezegd: als u een kolom instelt als de primaire sleutel van de tabel of een unieke beperking toewijst aan een bepaalde kolom, maakt de database-engine automatisch een unieke index voor die kolom.

Dit zorgt ervoor dat er geen dubbele waarde in die kolom wordt ingevoegd.

Neem bijvoorbeeld de volgende stelling:

maak een tabel sample_data
(
ID kaart nummer,
voornaam varchar2 ( vijftig ) ,
ip_address varchar2 ( twintig ) ,
btc_adres varchar2 ( vijftig ) ,
creditcard varchar2 ( vijftig ) ,
ID varchar2 ( 40 ) ,
beperking sample_pk primaire sleutel ( ID kaart )
) ;

In het vorige voorbeeld maken we een tabel en stellen we de id-kolom in als de primaire sleutel van de tabel. Om vervolgens de unieke beperking te bekijken die aan die kolom is gekoppeld (automatisch gegenereerd), kunnen we de volgende opdracht uitvoeren:

selecteren index_name, index_type, zichtbaarheid, status, TABLE_NAME
van all_indexes waarbij TABLE_NAME = 'SAMPLE_DATA' ;

Resultaten :
In dit geval kunnen we de unieke index zien die door de database-engine is gemaakt voor de id-kolom.

Conclusie

In deze handleiding hebt u geleerd hoe u de unieke indexen in de Oracle-database kunt maken en gebruiken. U hebt ook geleerd wat er gebeurt als u een primaire sleutel of unieke beperking toewijst aan een tabelkolom.