Bazy danych 149
Indeksy są tworzone najczęściej automatycznie dla kluczy głównych oraz dla pól, dla którym ma być wymuszona unikatowość.
Indeksy można też tworzyć dla innych pól korzystając z polecenia języka SQL CREATEINDEX.
Poniżej podano przykład utworzenia indeksu grupowanego dla tabeli memeber dla pola lastname.
USE library
CREATE CLUSTERED INDEX c1_lastname ON member (lastname)
Rys. 6.9 Przykład utworzenia indeksu przy użyciu języka SQL
Indeksy mogą wymuszać unikatowość pól lub nie. Przykład deklaracja indeksu wymuszającego unikatowość pola title_no podano poniżej. Po założeniu takiego indeksu dodanie do tabeli rekordu o istniejącej już wartości pola title_no nie będzie możliwe.
USE 1 ibrary
CREATE UNIQUE INDEX tit1e_ident OH title (titl e_no)_
lilie |
auttior |
synopsis | |
10 12 |
The Night-Born Lemon Wal king |
Jack London Motojirou Henry David Thoreau |
::: |
5
11 2 |Le PetitPtince |Antoine deSaint-Exupery'|---1
Rys. 6.10 Wymuszanie unikatowości pola przez indeks
Jak już wspomnieliśmy, indeks może też być zakładany na kilku polach jednocześnie. Poniższy przykład pokazuje sposób definiowania unikalnego indeksu na polach isbn i copy_no jednocześnie.
Założenie takiego indeksu spowoduje, że będzie można wprowadzić do tabeli rekord o istniejącej już wartości pola isbn oraz rekord o istniejącej wartości pola copyjio. Nie będzie natomiast możliwe wprowadzenie rekordu, w którym para wartości isbn i copy_no będzie się powtarzać.