MUL vs PRI vs UNI dans MySQL

Mehvish Ashiq 30 janvier 2023
  1. Clés dans MySQL
  2. Conclusion
MUL vs PRI vs UNI dans MySQL

Ce tutoriel vous apprendra les clés PRI, MUL et UNI dans MySQL.

En parcourant étape par étape dans ce tutoriel, nous verrons la différence fondamentale entre les clés PRI, MUL et UNI et comment utiliser chacune d’elles. Nous verrons également leur effet dans le tableau en utilisant l’exemple de code.

Clés dans MySQL

La clé est un attribut ou parfois un ensemble d’attributs utilisés pour identifier de manière unique une ligne d’une table.

Diverses clés sont utilisées dans MySQL à diverses fins, notamment la clé primaire, la clé unique, la clé composite, la clé étrangère, la super clé, la clé alternative et la clé candidate.

Nous nous concentrerons sur la clé primaire, unique et multiple pour cet article.

Clés PRI, UNI et MUL dans MySQL

Le PRI signifie clé primaire, force sur l’unicité d’un enregistrement dans la table. Il n’autorise pas les valeurs NULL.

Une ou plusieurs colonnes peuvent être utilisées comme clé primaire. La clé UNI représente la clé unique, renforce l’unicité d’une ligne (un enregistrement) dans la table (relation) comme la clé primaire et a des valeurs NULL.

Une ou plusieurs colonnes peuvent être utilisées pour créer une clé unique.

La clé MUL n’en est aucune, ce qui signifie que la clé MUL est un index qui n’est ni la clé primaire ni la clé unique. Il autorise les valeurs NULL, et les multiples occurrences de la même valeur que son nom MUL proviennent de multiples.

Si vous avez plusieurs clés appliquées sur la même colonne, les clés seront affichées selon leur priorité, PRI, UNI et MUL.

Comprenons à l’aide de l’exemple de code suivant.

#create an employee table
CREATE TABLE employee(
    ID INT PRIMARY KEY NOT NULL, #this is PRI Key
    FIRST_NAME VARCHAR(60) NOT NULL, 
    LAST_NAME VARCHAR(60) NOT NULL,
    GENDER VARCHAR(60) NOT NULL, INDEX(GENDER), #this is MUL Key
    COUNTRY_CODE VARCHAR(30), INDEX(COUNTRY_CODE), #this is MUL Key
    CITIZEN_ID INT UNIQUE KEY #this is UNI Key
);

#insert some data
INSERT INTO employee(ID, FIRST_NAME, LAST_NAME,GENDER, COUNTRY_CODE,CITIZEN_ID)
VALUES
(1,'Thomas', 'Christopher','Male','+61',485),
(2,'Lisa', 'Mark', 'Female','+59',408),
(3,'Anthony', 'Richard', 'Male','+61',215),
(4,'Matthew', 'Charles', 'Male',NULL, 610),
(5,'Kiren', 'Donald','Female','+31', null);

#use the following query to describe table columns and their properties
desc employee;

Production :

mul vs pri vs uni dans mysql - tableau

Consultez l’exemple de code ci-dessus et observez la sortie pour comprendre. Il est important de noter que nous ne pouvons avoir qu’une seule clé PRI dans le tableau, mais il peut y avoir plus d’une clé UNI et MUL.

Dans la sortie ci-dessus, nous avons une clé PRI appliquée sur la colonne ID, qui n’autorise pas les valeurs NULL. Cela signifie que si un ID est attribué à un employé, ce même ID ne sera attribué à aucun autre dans le tableau.

Nous avons une clé UNI appliquée sur la colonne CITIZEN_ID ; il renforce l’unicité et autorise les valeurs NULL. On peut voir deux clés MUL sur deux colonnes différentes nommées GENDER et COUNTRY_CODE.

Il faut penser que la clé MUL fonctionne bien sur les deux colonnes où la colonne GENDER ne peut pas avoir de valeurs NULL, mais COUNTRY_CODE peut. C’est pourquoi nous disons que MUL n’est ni la clé PRI ni la clé UNI.

Conclusion

Dans la discussion ci-dessus, nous avons conclu que les clés sont les attributs appliqués aux colonnes pour les identifier de manière unique dans le tableau.

Différentes clés sont utilisées pour différentes exigences. La clé PRI est destinée aux situations où vous ne voulez pas répéter les valeurs dans la colonne et n’autorisez pas les valeurs NULL.

La clé UNI se concentre sur l’unicité dans la colonne mais autorise les valeurs NULL. MUL n’est ni PRI ni UNI et peut accepter les valeurs NULL et NOT NULL.

Il ne peut y avoir qu’une seule clé PRI, mais vous pouvez avoir plusieurs clés UNI et MUL selon les exigences du projet.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook