Index de création de sqlite

Index de création de sqlite

Un index est un outil de données spécifique pour organiser et optimiser les informations pour une colonne entière pour interroger. Les index (ou indices) sont uniques à la recherche de base de données en ce qu'ils permettent de localiser certaines lignes dans un enregistrement sans avoir besoin de scanner l'ensemble du tableau. En conséquence, les indices peuvent donner à certaines opérations un gain de performance significatif. Les index sont généralement connectés à une seule table, bien qu'ils puissent comprendre plusieurs colonnes de ce tableau.

Ainsi, nous avons décidé de couvrir le sujet des index utilisés dans SQLite dans cet article aujourd'hui. Commençons par la base de données SQLite sur notre shell terminal qui vient de lancer. Pour cela, essayez la commande en un mot dans la zone de requête, je.e., "Sqlite3". La console SQLITE Shell sera lancée, comme indiqué ci-dessous:

Après avoir lancé le shell SQLite, nous avons utilisé le «.Tables »Instruction sur son shell pour afficher toutes les tables déjà faites de notre base de données.

Ainsi, nous avons besoin d'au moins un tableau dans notre base de données pour créer des index sur ses colonnes. Ainsi, nous essayons l'instruction de création de table qui créera une table nommée «Info». Ce tableau contiendra un total de trois colonnes. La colonne ID et la colonne d'âge seront de type entier, tandis que la colonne ID sera utilisée comme clé principale de ce tableau. La colonne de nom sera de type de texte. Le tableau a été créé avec succès, et nous avons essayé l'instruction sélectionnée pour récupérer tous ses enregistrements. Malheureusement, il n'y a aucun enregistrement dans le tableau jusqu'à présent.

SQLITE> Créer des informations sur la table (ID INT Primary Key, Name Text, Age int);
SQLITE> SELECT * FROM INFO;
sqlite>.les tables

Commençons à insérer plusieurs enregistrements dans les informations de la table en utilisant l'insert dans l'instruction de la base de données SQLite. Pour cela, vous devez spécifier les noms des colonnes de table utilisées pour insérer des enregistrements, i.e., Id, nom et âge. Les noms de colonne seront suivis par le mot-clé «valeurs» en utilisant les valeurs entre les supports. Nous avons ajouté cinq enregistrements dans le tableau «Info».

SQLITE> INSERT IN INFO (ID, NOM, AGE) VALEURS (1, "Bella", 34);
SQLITE> INSERT IN INFO (ID, nom, âge) Valeurs (2, "Bella", 23);
SQLITE> INSERT IN INFO (ID, NOM, AGE) VALEURS (3, "George", 26);
SQLITE> INSERT IN INFO (ID, NOM, AGE) VALEURS (4, "George", 29);
SQLITE> INSERT IN INFO (ID, NOM, AGE) VALEURS (5, "EMA", 30);

Après cela, nous avons utilisé l'instruction SELECT pour afficher tous les enregistrements nouvellement insérés des informations de la table. Les cinq enregistrements pour les colonnes, le nom et l'âge d'une table ont été affichés sur la coque.

SQLITE> SELECT * FROM INFO;

Comme nous le savons tous, la colonne ID de la table «Info» est déjà spécifiée comme clé principale. Ainsi, nous vérifierons comment une contrainte de clé primaire réagira à l'insertion de valeur en double. Ainsi, nous avons utilisé l'insert dans l'instruction pour insérer de nouveaux enregistrements dans le tableau «Info», tandis que la valeur de la colonne «ID» est de 5, i.e., répété. L'exécution de cette déclaration conduit à l'erreur «Une contrainte unique a échoué: info.IDENTIFIANT". Cela signifie que nous ne pouvons pas ajouter de valeur en double pour la colonne «ID».

SQLITE> INSERT IN INFO (ID, nom, âge) Valeurs (5, "Tom", 35);

Index unique

Créons un seul index sur une colonne particulière d'un tableau d'informations. Pour cela, vous devez utiliser l'instruction de création d'index suivie du nom d'un index à créer, je.e., Age_index, le mot-clé «sur», le nom d'une table, je.e., «Info» suivi du nom de la colonne, je.e., «Âge» sur lequel nous appliquerons l'indice. Après avoir créé un index «Age_index» pour la colonne «Age», nous avons inséré le nouvel enregistrement dans les informations de la table en utilisant l'insert dans l'instruction. Nous avons répété la valeur de «l'âge» de la colonne dans cette instruction, je.e., 30. Lors de la recherche de tous les enregistrements d'un tableau «Info», nous avons les enregistrements suivants:

SQLITE> Créer Index Age_Index sur Info (Age);
SQLITE> INSERT IN INFO (ID, NOM, AGE) VALEURS (6, "EMA", 30);
SQLITE> SELECT * FROM INFO;

La même chose a été faite pour la colonne «nom», je.e., créé un index "name_index". Ensuite, nous avons inséré l'enregistrement en double pour la colonne «Nom» en utilisant l'insert dans l'instruction et affiché tous les enregistrements du tableau «Info».

sqlite> Créer un index name_index sur info (name);
SQLITE> INSERT IN INFO (ID, NOM, AGE) VALEURS (7, "EMA", 20);
SQLITE> SELECT * FROM INFO;

Vous pouvez répertorier tous les index nouvellement créés de votre base de données à l'aide du «.Indices »Instruction avec le nom particulier d'une table,« Info », qui contient ou utilise ces index.

sqlite> .Informations sur les indices

Index composé

Si vous créez un index pour plus d'une colonne d'un tableau spécifique, il est dit que ce soit l'index composite. Ainsi, nous avons créé un index composite «Comp_index» pour le nom des colonnes et l'âge d'une table «Info» en utilisant l'instruction Create Index affiché dans l'image. Lorsque nous avons essayé d'insérer des enregistrements en double dans la colonne du nom et de l'âge de la table «Info» avec l'insert dans l'instruction, il a renvoyé l'erreur que «la contrainte unique a échoué».

SQLITE> Créer un index comp_index sur les informations (nom, âge);
SQLITE> INSERT IN INFO (ID, NOM, AGE) VALEURS (7, "Bella", 23);

En règle générale, les index offrent la possibilité de créer des entrées en double. Cependant, le mot-clé unique empêche les valeurs répétées d'être insérées ou mises à jour dans un enregistrement avec une entrée non unique. Un index unique peut ne pas interdire un ou des nulls supplémentaires car NULL n'est pas considéré comme une valeur. Non NULL doit être spécifié dans la déclaration initiale du tableau pour éviter les nuls. Créons un index unique sur la colonne «ID» d'une information de table avec l'indice de création. Nous avons sept enregistrements pour la table «Info» de cette base de données. Nous avons donc essayé l'insert dans l'instruction pour ajouter la valeur en double pour la colonne ID d'un tableau. Il a renvoyé la même erreur de «contrainte unique a échoué» sur notre écran.

SQLITE> Créer un index unique UIndex sur Info (ID);
SQLITE> SELECT * FROM INFO;
SQLITE> INSERT IN INFO (ID, NOM, AGE) VALEURS (7, "ANA", 19);

Créons une nouvelle table, «test», avec deux colonnes ID et âge, sans clés primaires. Après cela, nous avons créé un index unique, «unique_index», sur ses deux colonnes et ajouté deux enregistrements uniques et un enregistrement en double avec l'insert dans l'instruction. Le troisième enregistrement lance une erreur car les valeurs des deux colonnes ont été répétées.

SQLITE> CREATE TABLE TEST (ID INT, AGE INT);
SQLITE> Créer un index unique unique Unique_index sur le test (id, âge);
SQLITE> INSÉRER dans les valeurs de test (id, âge) (1, 23);
sqlite> insérer dans les valeurs de test (id, âge) (2, 24);
sqlite> insérer dans les valeurs de test (id, âge) (2, 24);

Conclusion:

Cet article portait sur l'utilisation de différents index des colonnes de table. Nous avons discuté des utilisations des index et essayé de créer les index uniques, composites et uniques sur différentes colonnes de table avec l'indice de création à notre fin.