Home - SQL Befehle - Datenmanipulation - Objekt erzeugen www.sqldocu.com
zurück vor



Index erstellen


Beschreibung
top
CREATE INDEX ist nicht Bestandteil des ANSI Standards, da Indizese in der Mengenlehre (Relationales Modell) nicht existieren. Nahezu alle RDBMS unterstützen jedoch diesen Befehl. Ein INDEX bezieht sich auf eine oder mehrere Spalten einer Tabelle. Meisten werden INDEXE mit der Option UNIQUE erzeugt, womit der INDEX eindeutig ist! z.B: Besteht ein INDEX aus nur einer Spalte, so darf die Spalte keine doppelten Werte besitzen, besteht ein INDEX aus mehreren Spalten, so muss die Kombination der Spalten eindeutig sein. Wird versucht in einen INDEX ein Wert einzufügen, der bereits vorhanden ist, liefert der Compiler eine entsprechende Fehlermeldung. Es ist möglich mehrere INDEXE in einer Tabelle zu definieren. Ein INDEX wird als PRIMARY KEY (deutsch: Primär Schlüssel) bezeichnet, dieser muss eineutig sein, die anderen werden als SECONDARY KEY (deutsch: Zweit Schlüssel) bezeichnet, und können eineutig sein.
Es gibt 2 Gründe warum INDEXE angelegt werden:
  • EINDEUTIGKEIT Das RDBMS stellt automatisch sicher, dass der INDEX keine doppelten Werte enthält. In diesem Fall muss beim Erstellen die Option UNIQUE verwendet werden.
  • PERFORMANCE STEIGERUNG BEI SUCHVORGÄNGEN Durch das Anlegen eines INDEX wird die Geschwindigkeit mit der eine Tabelle durchsucht werden kann, wesentlich erhöht. Enthält eine Tabelle mehrere INDEXE, kann im ungünstigen Fall die Suchgeschwindigkeit verringert werden. Man sollte somit vermeiden, unnötige INDEXE zu erstellen.
Ein INDEX kann während der Erstellung einer Tabelle definiert werden. Der Syntax ist hier etwas anders (siehe UNIQUE KEY und PRIMARY KEY).
Wer sich mit INDEXEN beschäftigt dem sollte der Begriff FOREIGN KEY geläufig sein.
Wir empfehlen CREATE INDEX nicht zu verwenden und statt dessen INDEXE während der Tabellen Erzeugung zu definieren.




Syntax
top
CREATE
UNIQUE   optional  
INDEX IndexName
ON
TabellenName (
SpaltenName1 [,SpaltenName2] [,..]
)
ASC | DESC   optional  

| ... trennt Syntaxmöglichkeiten (entweder oder)
[] ... Syntax innerhalb dieser Klammern ist optional
optional ... Syntax in dieser Zeile ist optional
Beispiele:
CREATE UNIQUE INDEX meinIndex ON meineTabelle (Spalte1)


Eindeutigen Index erstellen
top
CREATE UNIQUE INDEX meinIndex
ON
meineTabelle (
PersonalNummer
)

Die Tabelle meine Tabelle erhält den INDEX mit dem Namen meinIndex. Durch die Option UNIQUE ist der Index eindeutig. Es dürfen keine Felder mit gleichem Wert in der Spalte PersonalNummer vorkommen. Da der Index eindeutig ist und in der Tabelle keine weiteren INDEXE bestehen, spricht man von PRIMARY KEY (siehe Beschreibung).

Verwandte Themen: UNIQUE KEY, PRIMARY KEY, FOREIGN KEY, Vorschriften erstellen

PHP Syntax     PERL Syntax


Index erstellen der doppelte/mehrfach vorkommede Werte erlaubt
top
CREATE INDEX meinIndex
ON
meineTabelle (
Name
) DESC

Die Tabelle meine Tabelle erhält den INDEX mit dem Namen meinIndex. Durch das Weglassen die Option UNIQUElässt der Index doppelte/mehrfache Werte in der Spalte Name zu. Hier könnten z.B. die Namen aller CrewMitglieder der Föderation stehen. Natürlich kann ein Name öfters vorkommen, und so macht es keinen Sinn, bei diesem INDEX Eindeutigkeit zu erzwingen. Dennoch wird es öfters vorkommen, dass die Tabelle nach einem Namen durchsucht wird. Das Anlegen eines INDEXES macht somit Sinn, da die Suche durch den INDEX mit hoher Wahrscheinlichkeit beschleunigt wird. Die Option DESC bewirkt das absteigend sortiert wird. Wird die Option weggelassen wählt das RDBMS automatisch ASC, womit aufsteigend sortiert wird.

Verwandte Themen: UNIQUE KEY, PRIMARY KEY, FOREIGN KEY, Vorschriften erstellen

PHP Syntax     PERL Syntax



top