SQL CREATE INDEX

En SQL, la commande CREATE INDEX permet de créer un index. L’index est utile pour accélérer l’exécution d’une requête SQL qui lit des données et ainsi améliorer les performances d’une application utilisant une base de données.

Syntaxe

Créer un index ordinaire

La syntaxe basique pour créer un index est la suivante :

CREATE INDEX `index_nom` ON `table`;

Il est également possible de créer un index sur une seule colonne en précisant la colonne sur laquelle doit s’appliquer l’index :

CREATE INDEX `index_nom` ON `table` (`colonne1`);

L’exemple ci-dessus va donc insérer l’index intitulé “index_nom” sur la table nommée “table” uniquement sur la colonne “colonne1”. Pour insérer un index sur plusieurs colonnes il est possible d’utiliser la syntaxe suivante:

CREATE INDEX `index_nom` ON `table` (`colonne1`, `colonne2`);

L’exemple ci-dessus permet d’insérer un index les 2 colonnes : colonne1 et colonne2.

Créer un index unique

Un index unique permet de spécifier qu’une ou plusieurs colonnes doivent contenir des valeurs uniques à chaque enregistrement. Le système de base de données retournera une erreur si une requête tente d’insérer des données qui feront doublons sur la clé d’unicité. Pour insérer un tel index il suffit d’exécuter une requête SQL respectant la syntaxe suivante :

CREATE UNIQUE INDEX `index_nom` ON `table` (`colonne1`);

Dans cet exemple un index unique sera créé sur la colonne nommée colonne1. Cela signifie qu’il ne peut pas y avoir plusieurs fois la même valeur sur 2 enregistrements distincts contenus dans cette table.

Il est également possible de créer un index d’unicité sur 2 colonnes, en respectant la syntaxe suivante:

CREATE UNIQUE INDEX `index_nom` ON `table` (`colonne1`, `colonne2`);

Convention de nommage

Il n’existe pas de convention de nommage spécifique sur le nom des index, juste des suggestions de quelques développeurs et administrateurs de bases de données. Voici une liste de suggestions de préfixes à utiliser pour nommer un index :

  • Préfixe “PK_” pour Primary Key (traduction : clé primaire)
  • Préfixe “FK_” pour Foreign Key (traduction : clé étrangère)
  • Préfixe “UK_” pour Unique Key (traduction : clé unique)
  • Préfixe “UX_” pour Unique Index (traduction : index unique)
  • Préfixe “IX_” pour chaque autre IndeX
Partager