Un champ, qui contient des données uniques dans une table, est appelé une CLÉ PRIMAIRE (PK). Cela signifie qu'un champ PRIMARY KEY doit contenir des données uniques dans la table.
- Un champ PRIMARY KEY contient des valeurs sur chaque ligne.
- Le champ PRIMARY KEY ne peut pas contenir de chaîne vide.
- Les données PRIMARY KEY ne sont jamais modifiées au fil du temps.
- Une table ne peut contenir qu'une seule CLÉ PRIMAIRE, qui peut être constituée d'un ou de plusieurs champs dans la table. Lorsque plusieurs colonnes sont utilisées comme CLÉ PRIMAIRE de la table, elles sont appelées clé composite dans la table.
- Il n'y aura pas d'enregistrements en double pour une CLÉ PRIMAIRE.
- Si un champ est défini comme CLÉ PRIMAIRE dans la table, ce champ ne peut pas contenir les valeurs du même champ plus d'une fois dans la table.
Par exemple, nous avons une table Student dans la base de données. La table contient 4 champs Student_Id, Student_Name, Phone_Number et Email. Student_Id and Email est la CLÉ PRIMAIRE dans la table Student. Il n'y a qu'une seule CLÉ PRIMAIRE mais peut avoir un ou plusieurs champs dans la table, comme nous l'avons dit ci-dessus. Les données d'un étudiant sont déjà présentes dans le tableau, mais le même étudiant ajoute à nouveau ses données avec le même identifiant de messagerie. Au fur et à mesure que l'élève saisit les détails, une fenêtre contextuelle affichera un message "L'e-mail a déjà existé". Il s'affiche car l'e-mail existe déjà dans la table et le champ de l'e-mail est la CLÉ PRIMAIRE, et la CLÉ PRIMAIRE ne peut pas contenir de valeurs en double.
Créer la CLÉ PRIMAIRE sur la TABLE SQL
La requête SQL suivante crée une CLÉ PRIMAIRE sur le champ Employee_Id lors de la création de la table "Employee".
CREATE TABLE Employee( Employee_Id int PRIMARY KEY, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40) );
La requête ci-dessus a défini PRIMARY KEY dans le champ Employee_Id. Nous pouvons mentionner le nom de la clé après le nom du champ et le type de données. La requête ci-dessus est la seule façon de créer Employee_Id en tant que PRIMARY KEY.
Pour vérifier si notre PRIMARY KEY est définie avec succès ou non, nous pouvons utiliser la commande DESC suivie du nom de la table Employee.
Employé DESC ;
Champs | Type | Nul | Clé | Par défaut | Extra |
Employee_Id | Entier(11) | NON | PRI | NULL | |
Employee_Name | Varchar(40) | NON | NULL | ||
Salaire | Entier(11) | NON | NULL | ||
Département | Varchar(40) | OUI | NULL | ||
Ville | Varchar(40) | OUI | NULL |
Le champ Clé PRI est mentionné devant la ligne Employee_Id, ce qui signifie que Employee_Id est correctement défini comme CLÉ PRIMAIRE.
Avantages de l'utilisation de PRIMARY KEY dans le tableau :
- Accès rapide aux données du tableau.
- Les valeurs en double ne sont pas autorisées dans les champs PRIMARY KEY.
Une autre façon de créer une CLÉ PRIMAIRE
CREATE TABLE Employee( Employee_Id int NOT NULL, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40), PRIMARY KEY(Employee_ID) );
Dans la même requête que ci-dessus, nous devons mentionner NOT NULL devant le nom du champ, qui est créé en tant que PRIMARY KEY, et à la fin, nous devons écrire le mot-clé PRIMARY KEY et le nom du champ entre parenthèses comme ci-dessus requête.
Créer une contrainte PRIMARY KEY sur les champs lorsque la table existe déjà
Utilisez la requête suivante :
ALTER TABLE Employee ADD PRIMARY KEY(Employee_Id);
En utilisant la requête ALTER TABLE pour définir PRIMARY KEY, le champ PRIMARY KEY a déjà été déclaré avec la contrainte NOT NULL.
CLÉ PRIMAIRE SQL sur plusieurs colonnes
La requête SQL suivante crée une CLÉ PRIMAIRE sur plusieurs colonnes lors de la création de la table "Étudiant".
CREATE TABLE Student( Student_Id int NOT NULL, Student_Name varchar(40), Department varchar(40), Phone_Number int(10), Email varchar(100) NOT NULL, PRIMARY KEY(Student_ID, Email));
Une seule CLÉ PRIMAIRE est créée dans l'exemple sur Student_Id et Email.
Pour vérifier si notre PRIMARY KEY est définie avec succès ou non, nous pouvons utiliser la commande DESC suivie du nom de la table Student.
DESC Student;
Champs | Type | Nul | Clé | Par défaut | Extra |
Student_Id | Entier(11) | NON | PRI | NULL | |
Student_Name | Varchar(40) | OUI | NULL | ||
Département | Varchar(40) | OUI | NULL | ||
Numéro_téléphone | Entier(10) | OUI | NULL | ||
Varchar(100) | NON | PRI | NULL |
Comme nous pouvons le voir devant la ligne Student_Id et Email, les champs clés PRI sont mentionnés, ce qui signifie que Student_Id et Email sont définis avec succès comme PRIMARY KEY.
Nous allons maintenant exécuter SHOW CREATE TABLE suivi du nom de la table des étudiants, qui décrira la table des étudiants.
SHOW CREATE TABLE Student;
Dans la sortie ci-dessus, nous pouvons voir qu'une seule CLÉ PRIMAIRE est créée, et entre parenthèses, le nom du champ est mentionné, qui est créé en tant que CLÉ PRIMAIRE lors de la création de la table.
Supposons que nous voulions supprimer la contrainte PRIMARY KEY de la table des étudiants. Nous allons utiliser la requête suivante pour supprimer la contrainte PRIMARY KEY :
ALTER TABLE Student DROP PRIMARY KEY;
Pour vérifier si notre PRIMARY KEY est supprimée avec succès ou non, nous utiliserons la commande DESC suivie du nom de la table Student.
DESC Student;
Champs | Type | Nul | Clé | Par défaut | Extra |
Student_Id | Entier(11) | NON | NULL | ||
Student_Name | Varchar(40) | OUI | NULL | ||
Département | Varchar(40) | OUI | NULL | ||
Numéro_téléphone | Entier(10) | OUI | NULL | ||
Varchar(100) | NON | NULL |