CREATE INDEX-Anweisung (SQL, Oracle)

Ein Index ist ein Datenbankobjekt, mit dem der lesende Zugriff auf Tabellen beschleunigt werden soll. Dabei werden in der Regel WHERE-Klauseln ausgewertet. Indizes entsprechen Primärschlüsseln bzw. eindeutigen Schlüsseln des relationalen Modells und werden bei z.B. Oracle für Primärschlüssel (PRIMARY KEY) und Eindeutigkeitsschluessel (UNIQUE) automatisch angelegt.

SYNTAX der CREATE INDEX-Anweisung:

  <CREATE INDEX-Anweisung (SQL, Oracle, Auszug)> ::=
          CREATE [UNIQUE] [BITMAP] INDEX Indexname ON Tabellenname (Spaltenname [, Spaltenname]...); [USING INDEX indexname | CREATE INDEX-Anweisung]

UNIQUE bewirkt, dass die Werte in der entsprechenden INDEX-Spalte eindeutig sind, NULL-Werte werden dabei ignoriert. Bitmap-Indexe sind eine Spezialform bei Oracle. In ihnen werden die Adressen (ROWIDs?) als Oracle-spezifische Bitmap gespeichert.

MIT USING-Index kann ein bestehender Index genutzt werden oder eine CREATE-Index-Anweisung explizit angegeben werden. Auf einer Spalte(oder auch mehreren), auf der schon ein Index existiert, kann kein weiterer Index angelegt werden.

Beispiele:

  CREATE UNIQUE INDEX teile_i1 ON Teile (TNr);           -- definiert einen eindeutigen Schlüssel auf der Teile-Tabelle.

CREATE INDEX Struktur_i1 ON Struktur (OTeil, UTeil); -- definiert einen zusammengesetzten Sekundärschlüssel -- über die Spalten OTeil und UTeiI der Tabelle Struktur.

CREATE UNIQUE INDEX teile_i2 ON Teile (TNr); -- definiert einen eindeutigen Schlüssel auf der Teile-Tabelle USING Index TEIL_X; -- der einen bestehneden Index TEIL_X nutzt.

siehe auch: DROP Bitmap-Index, Namensraum

Quellen:

  • ANSI/ISO/IEC 9075-1:2003. Part 1 "SQL/Framework", ISO International Organization for Standardization / ANSI American National Standards Institute, September 2003
  • ANSI/ISO/IEC 9075-2:2003. Part 2 "SQL/Foundation", ISO International Organization for Standardization / ANSI American National Standards Institute, Dezember 2003
  • Elmasri, Ramez/Navathe, Shamkant B.: "Grundlagen von Datenbanksystemen" , Pearson Studium, München, 2002, ISBN 3-8273-7021-3
  • Faeskorn-Woyke, Heide/Bertelsmeier, Birgit/Riemer, Petra/Bauer, Elena: "Datenbanksysteme - Theorie und Praxis mit SQL2003, Oracle und MySQL", Pearson Education, München, 2007, ISBN 978-3-8273-7266-6
  • Kemper, Alfons/Eickler, André: "Datenbanksysteme", Oldenbourg, München, 2009, 978-3-486-59018-0
  • Melton, Jim/Simon, Alan R.: "SQL: 1999 - Understanding Relational Language Components", Morgan Kaufmann, San Francisco, 2001, ISBN 1558604561
  • Oracle® Database SQL Language Reference 11g Release 2 (11.2), E17118-03, August 2010, http://download.oracle.com/docs/cd/E11882_01/server.112/e17118.pdf
  • Saake, Gunter/Sattler, Kai-Uwe/Heuer, Andreas: "Datenbanken - Konzepte und Sprachen", mitp-Verlag, Redline GmbH, Heidelberg, 2007, ISBN 3-8266-1664-2
  • Vossen, Gottfried: "Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme", Oldenbourg, München, 2008, ISBN 978-3-486-27574-2

Kategorie: SQL, C