SQLite: Index über eine oder mehrere Spalten anlegen
Info von Stefan Trost | Letztes Update am 15.01.2024 | Erstellt am 28.10.2013
In dieser kleinen Info möchte ich euch zeigen, wie ihr in einer SQLite-Datenbank Indices über eine oder mehrere Spalten einer Tabelle hinzufügen könnt.
Soweit ich weiß lässt sich im CREATE TABLE Statement nur ein PRIMARY KEY Index erstellen, alle weiteren Indices müssen entsprechend in weiteren Anfragen nach der Erstellung der Tabelle angelegt werden.
Index anlegen im CREATE TABLE Statement
Schauen wir uns zunächst ein typisches CREATE TABLE Statement zum Erstellen einer neuen Tabelle an.
CREATE TABLE IF NOT EXISTS tab ( id INTEGER PRIMARY KEY, vorname TEXT, nachname TEXT)
Wir erstellen uns die Tabelle namens "tab", falls noch keine gleichnamige Tabelle existiert. Die Tabelle besteht aus den Spalten id, vorname und nachname. Dabei haben wir hinter die Definition "id INTEGER" den Zusatz "PRIMARY KEY" angefügt. Dies gewährleistet, dass unsere Spalte "id" zum primären Index unserer Tabelle wird.
Index über eine Spalte anlegen
Als nächstes möchten wir einen Index über die Spalte "nachname" anlegen. Dazu verwenden wir folgende Syntax:
CREATE INDEX index_name ON tab_name (spalte)
Oder in unserem Beispiel:
CREATE INDEX index_nachname ON tab (nachname)
Wir nennen unseren Index "index_nachname" und haben ansonsten einfach den Namen der Tabelle und der Spalte eingesetzt.
Index über mehrere Spalten anlegen
Wenn wir einen Index über mehrere Spalten anlegen möchten, können wir folgende Syntax verwenden:
CREATE INDEX index_name ON tab_name (spalte1, spalte2)
In unserem Beispiel möchten wir einen Index über die Spalten nachname und vorname anlegen:
CREATE INDEX index_vorundnachname ON tab (vorname, nachname)
Mehrere Spaltennamen werden also einfach durch ein Komma voneinander getrennt, ansonsten bleibt der Aufbau des Statements identisch.
Zusatzspezifikationen
Möchten wir den Index nur dann erstellen, wenn dieser noch nicht existiert, können wir "IF NOT EXISTS" hinzufügen:
CREATE INDEX IF NOT EXISTS index_name ON tab_name (spalte)
Soll der Index UNIQUE sein (keine 2 gleichen Werte im Index), ergänzen wir UNIQUE:
CREATE UNIQUE INDEX index_name ON tab_name (spalte)
Wenn man einen UNIQUE Index angelegt hat und einen Datensatz in die Tabelle versucht einzufügen, der schon im UNIQUE Index existiert, führt dies zu einer Fehlermeldung. Im UNIQUE Index darf es keine doppelten Einträge geben.
Über den Autor
Software von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen
Ähnliche Themen
MySQL: Zeilenumbrüche in MySQL
Tipp | 0 Kommentare
Unternehmen aus Bayern im DAX, MDAX, SDAX und TecDAX
Info | 0 Kommentare
MySQL: Name einer Datenbank umbenennen
Tipp | 1 Kommentar
Unternehmen aus NRW im DAX, MDAX, SDAX und TecDAX
Info | 0 Kommentare
SQLite: Überprüfen ob Tabelle existiert
Info | 0 Kommentare
XAMPP: SSL/HTTPS für lokale Projekte einrichten
Tutorial | 8 Kommentare
MySQL: Daten aus Tabelle löschen - Unterschied zwischen TRUNCATE, DELETE und DROP
Tutorial | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.