SQLite Index erstellen

SQLite Index erstellen

Ein Index ist ein spezifisches Datenwerkzeug zum Organisieren und Optimieren der Informationen für eine ganze Spalte für die Abfrage. Indizes (oder Indizes) sind für die Datenbanksuche eindeutig, da sie zulassen, dass bestimmte Zeilen in einem Datensatz gefunden werden, ohne die gesamte Tabelle zu scannen zu müssen. Infolgedessen können Indizes einigen Vorgängen einen erheblichen Leistungsgewinn verleihen. Indizes sind normalerweise mit einer einzelnen Tabelle verbunden, obwohl sie möglicherweise mehrere Spalten aus dieser Tabelle umfassen.

Daher haben wir beschlossen, das Thema der in SQLite verwendeten Indizes in diesem Artikel heute zu behandeln. Beginnen wir mit der SQLite -Datenbank in unserer gerade gestarteten Terminal Shell. Probieren Sie dafür den Befehl Ein-Wort im Abfragebereich aus, ich.e., "SQLite3". Die SQLite -Shell -Konsole wird wie unten gezeigt gestartet:

Nach dem Start der SQLite -Shell haben wir die „verwendet“.Tabellen ”Anweisung in seiner Shell, um alle bereits hergestellten Tabellen unserer Datenbank anzuzeigen.

Daher benötigen wir mindestens eine Tabelle in unserer Datenbank, um Indizes für seine Spalten zu erstellen. Wir probieren also die Anweisung "Tabelle erstellen" aus, die eine Tabelle mit dem Namen "Info" erstellt. Diese Tabelle enthält insgesamt drei Spalten darin. Die Spalte und Altersspalte der ID -Spalte enthält einen ganzzahligen Typ, während die ID -Spalte als Primärschlüssel dieser Tabelle verwendet wird. Die Spalte des Namens wird vom Texttyp sein. Die Tabelle wurde erfolgreich erstellt, und wir haben die Auswahlanweisung ausprobiert, um alle Datensätze abzurufen. Leider gibt es bisher keine Datensätze in der Tabelle.

SQLite> Tabelleninformationen erstellen (ID -Int -Primärschlüssel, Name Text, Alter int);
sqlite> aus der info;
sqlite>.Tische

Lassen Sie uns mit dem Einfügen mehrerer Datensätze in die Tabelleninformationen mit dem Einfügen in die Anweisung der SQLite -Datenbank einfügen. Hierzu müssen Sie die Namen der Tabellenspalten angeben, die zum Einfügen von Datensätzen verwendet werden.e., ID, Name und Alter. Auf die Spaltennamen folgen das Schlüsselwort „Werte“ unter Verwendung der Werte in den Klammern. In der Tabelle "Info" haben wir fünf Datensätze hinzugefügt.

SQLite> In Info (ID, Name, Alter) Werte (1, "Bella", 34) einfügen;
SQLite> In Info (ID, Name, Alter) Werte (2, "Bella", 23) einfügen;
SQLite> In Info (ID, Name, Alter) Werte (3, "George", 26) einfügen;
SQLite> In Info (ID, Name, Alter) Werte (4, "George", 29) einfügen;
SQLite> In Info (ID, Name, Alter) Werte (5, "EMA", 30) einfügen;

Danach haben wir den Anweisungen ausgewählt, um alle neu eingefügten Datensätze der Tabelleninformation anzuzeigen. Die fünf Datensätze für Spalten -ID, Name und Alter einer Tabelle wurden auf der Shell angezeigt.

sqlite> aus der info;

Wie wir alle wissen, ist die ID -Spalte der Tabelle "Info" bereits als Primärschlüssel angegeben. Daher werden wir überprüfen, wie eine primäre Schlüsselbeschränkung auf die doppelte Werteinfügung reagiert. Wir haben also den Einfügen in Anweisungen verwendet, um neue Datensätze in die Tabelle „Info“ einzufügen, während der Wert für die Spalte „ID“ 5 ist, i, i.e., wiederholt. Die Ausführung dieser Anweisung führt zum Fehler „Eindeutige Einschränkung fehlgeschlagen: Info.AUSWEIS". Dies bedeutet, dass wir keinen doppelten Wert für die Spalte „ID“ hinzufügen können.

SQLite> In Info (ID, Name, Alter) Werte (5, "Tom", 35) einfügen;

Einzelindex

Erstellen wir einen einzelnen Index in einer bestimmten Spalte einer Info -Tabelle. Zu diesem Zweck müssen Sie den Anweisungen für Erstellen indexieren, gefolgt vom Namen eines zu erstellenden Index, i, i.e., AGE_INDEX, das Schlüsselwort "On", der Name einer Tabelle, ich.e., "Info" gefolgt vom Spaltennamen, ich.e., "Alter", auf das wir den Index anwenden werden. Nachdem wir einen Index "Age_Index" für die Spalte "Alter" erstellt haben. Wir haben den Wert für die Spalte „Alter“ in dieser Anweisung wiederholt, ich.e., 30. Nachdem wir alle Datensätze einer Tabelle „Info“ durchsucht haben, haben wir die folgenden Datensätze:

SQLITE> Index Age_index für Info (Alter) erstellen;
SQLite> In Info (ID, Name, Alter) Werte (6, "EMA", 30) einfügen;
sqlite> aus der info;

Das Gleiche wurde für die Spalte "Name" getan, ich.e., Erstellt einen Index "name_index". Als nächstes haben wir den doppelten Datensatz für die Spalte „Name“ mit dem Einfügen in den Anweisungen eingefügt und alle Datensätze der Tabelle "Info" angezeigt.

SQLite> Index name_index auf info (name) erstellen;
SQLite> In Info (ID, Name, Alter) Werte (7, "EMA", 20) einfügen;
sqlite> aus der info;

Sie können alle neu erstellten Indizes Ihrer Datenbank mithilfe der “auflisten.Indizes ”Anweisung zusammen mit dem jeweiligen Namen einer Tabelle,„ Info “, die diese Indizes enthält oder verwendet.

sqlite> .Indizes Info

Composite-Index

Wenn Sie einen Index für mehr als eine Spalte einer bestimmten Tabelle erstellen, wird bezeichnet, dass es sich um den zusammengesetzten Index handelt. Wir haben also einen zusammengesetzten Index „comp_index“ für den Namen der Spalten erstellt. Name und Alter einer Tabelle „Info“ unter Verwendung der im Bild angezeigten Anweisung erstellen Index. Als wir versuchten, doppelte Datensätze in die Spalte "Info" der Namen und der Altersdauer mit dem Einfügen in die Anweisung einzufügen, wurde der Fehler "Eindeutige Einschränkung fehlgeschlagen" zurückgegeben.

SQLite> Index comp_index für info (Name, Alter) erstellen;
SQLite> In Info (ID, Name, Alter) Werte (7, "Bella", 23) einfügen;

In der Regel bieten Indizes die Möglichkeit, doppelte Einträge zu erstellen. Das eindeutige Schlüsselwort verhindert jedoch, dass wiederholte Werte in einen Datensatz mit einem nicht eindeutigen Eintrag eingefügt oder aktualisiert werden. Ein eindeutiger Index verbietet möglicherweise keinen oder zusätzlichen Nulls, da Null nicht als Wert angesehen wird. Nicht Null sollte in der Erklärung der Anfangstabelle angegeben werden, um Nulls zu vermeiden. Erstellen wir einen eindeutigen Index in der Spalte „ID“ einer Tabelleninformation mit dem Anweisungen erstellen in der Erstellung. Wir haben sieben Datensätze für die Tabelle "Info" dieser Datenbank. Wir haben also den Einfügen in Anweisungen ausprobiert, um den doppelten Wert für die ID -Spalte einer Tabelle hinzuzufügen. Auf unserem Bildschirm wurde der gleiche Fehler „eindeutige Einschränkung fehlgeschlagen“ zurückgegeben.

SQLITE> Eindeutiger Index uIdex für Info (ID) erstellen;
sqlite> aus der info;
SQLite> In Info (ID, Name, Alter) Werte (7, "Ana", 19) einfügen;

Erstellen wir eine neue Tabelle, „Test“, mit zwei Spalten -ID und Alter ohne Primärschlüssel. Danach haben wir in beiden Spalten einen eindeutigen Index, „Unique_index“, erstellt und zwei eindeutige Datensätze und einen doppelten Datensatz mit dem Einfügen in den Anweisungen hinzugefügt. Der dritte Datensatz wirft einen Fehler aus, da die Werte der beiden Spalten wiederholt wurden.

SQLite> Tabellen -Test erstellen (ID int, Alter int);
SQLite> eindeutig eindeutig Index eindeutig_index erstellen (id, Alter);
SQLite> In Test (ID, Alter) Werte (1, 23) einfügen;
SQLite> In Test (ID, Alter) Werte (2, 24) einfügen;
SQLite> In Test (ID, Alter) Werte (2, 24) einfügen;

Abschluss:

In diesem Artikel ging es um die Verwendung verschiedener Indizes der Tabellenspalten. Wir haben die Verwendungen von Indizes besprochen und versucht, die Einzel-, Verbund- und eindeutigen Indizes in verschiedenen Tabellenspalten mit der Anweisung "Create Index" an unserem Ende zu erstellen.