SQL Indici raggruppati, univoci e ordinati


Esempio

Gli indici possono avere diverse caratteristiche che possono essere impostate alla creazione o alterando gli indici esistenti.

CREATE CLUSTERED INDEX ix_clust_employee_id ON Employees(EmployeeId, Email);  

L'istruzione SQL sopra riportata crea un nuovo indice cluster su Dipendenti. Gli indici raggruppati sono indici che dettano la struttura effettiva della tabella; la tabella stessa è ordinata per corrispondere alla struttura dell'indice. Ciò significa che può esserci al massimo un indice cluster su un tavolo. Se un indice cluster esiste già sulla tabella, l'istruzione sopra avrà esito negativo. (Le tabelle senza indici cluster sono anche chiamate heap).

CREATE UNIQUE INDEX uq_customers_email ON Customers(Email);

Ciò creerà un indice univoco per la colonna Email nella tabella Clienti . Questo indice, oltre a velocizzare le query come un normale indice, imporrà anche l'unicità di ogni indirizzo email in quella colonna. Se una riga viene inserita o aggiornata con un valore di E - mail non univoco, l'inserimento o l'aggiornamento, per impostazione predefinita, falliranno.

CREATE UNIQUE INDEX ix_eid_desc ON Customers(EmployeeID);

Ciò crea un indice su Clienti che crea anche un vincolo di tabella che EmployeeID deve essere univoco. (Questo fallirà se la colonna non è al momento unica - in questo caso, se ci sono impiegati che condividono un ID.)

CREATE INDEX ix_eid_desc ON Customers(EmployeeID Desc);

Questo crea un indice che è ordinato in ordine decrescente. Per impostazione predefinita, gli indici (almeno nel server MSSQL) sono in ordine crescente, ma possono essere modificati.