Cours SQL et MySQL · Module 9: Index et normalisation
PRIMARY KEY vs UNIQUE vs INDEX
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
| Sorte | Unique ? | NULL ? | Combien par table |
|---|---|---|---|
| PRIMARY KEY | oui | non | une |
| UNIQUE | oui | oui | plusieurs |
| INDEX | non | oui | plusieurs |
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. En quoi PRIMARY KEY diffère-t-il d'un UNIQUE INDEX ?
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 :