Cours SQL et MySQL · Module 9: Index et normalisation

PRIMARY KEY vs UNIQUE vs INDEX

2 min de lecture
Dans cette leçon4

Dans la Bibliothèque, tu rencontreras trois sortes de catalogues. Ils se ressemblent, mais diffèrent par la rigueur de leurs règles. Apprenons-les du plus strict au plus souple.

PRIMARY KEY (clé primaire)

C'est le catalogue le plus strict - le numéro de catalogue principal de chaque parchemin. Ses règles :

  • il y en a exactement une par table,
  • ses valeurs sont uniques (pas de doublons),
  • elle n'autorise pas les valeurs NULL.

C'est le plus souvent la colonne id. Elle désigne une ligne de façon unique, comme le numéro de catalogue d'un parchemin.

1SELECT * FROM autorzy WHERE id = 3;

UNIQUE INDEX

Un peu plus souple. Il garantit lui aussi l'unicité, mais :

  • il peut y en avoir plusieurs dans une même table,
  • il autorise les valeurs NULL (dans MySQL, il peut y en avoir plusieurs).

Idéal pour des colonnes comme email - chaque adresse est différente, mais la table a déjà sa clé primaire ailleurs.

INDEX simple

Le catalogue le plus souple. Il ne garantit pas l'unicité - il autorise les répétitions. Son seul rôle est d'accélérer la recherche.

Il fonctionne à merveille sur la colonne autor_id de la table ksiazki - un auteur peut avoir plusieurs livres, donc les valeurs se répètent, mais nous voulons les retrouver rapidement.

Résumé des différences

SorteUnique ?NULL ?Combien par table
PRIMARY KEYouinonune
UNIQUEouiouiplusieurs
INDEXnonouiplusieurs

Retiens ceci : tous les trois accélèrent la lecture, mais seuls les deux premiers garantissent l'unicité.

Tu as repéré une erreur dans cette leçon ?

Teste tes connaissances

Réponds aux questions de cette leçon. Choisis une réponse pour voir tout de suite si elle est correcte.

  1. 1. En quoi PRIMARY KEY diffère-t-il d'un UNIQUE INDEX ?

  2. 2. Qu'est-ce qui distingue un INDEX simple de PRIMARY KEY et UNIQUE ?

Voici 2 des 3 questions de cette leçon. Réponds aux autres dans le jeu.

Tâches pratiques dans le jeu

  • Tri vertical

    Ordonne les trois types d'index de la contrainte la plus forte à la plus faible (du contrôle d'unicité le plus strict à l'absence de contrôle) :

  • Éditeur de code

    Crée un index simple nommé idx_autor sur la colonne autor_id de la table ksiazki.

  • Clique dans l'ordre

    Clique sur les types d'index dans l'ordre, de la contrainte la plus stricte à la plus souple :