logo

Comment ajouter une clé étrangère dans SQL

Dans cet article, nous allons apprendre comment ajouter une clé étrangère à la colonne de la table de notre base de données SQL.

Le CLÉ ÉTRANGÈRE en SQL est utilisé pour joindre l'enregistrement de deux tables dans la base de données. La colonne définie comme FOREIGN KEY dans une table doit être la PRIMARY KEY dans une autre table de la même base de données.

Nous pouvons facilement ajouter une clé étrangère à la colonne des deux manières suivantes :

  1. Ajouter une clé étrangère à l'aide de l'instruction Create table
  2. Ajouter une clé étrangère à l'aide de l'instruction Alter Table

Si vous souhaitez ajouter une CLÉ ÉTRANGÈRE à la colonne de la table SQL, vous devez suivre les étapes ci-dessous dans l'ordre indiqué :

  1. Créez la base de données dans le système.
  2. Créez deux tables dans la même base de données.
  3. Afficher la structure de la table avant l’ajout de la clé étrangère.
  4. Ajoutez une clé étrangère à la table.
  5. Afficher la structure du tableau.

Maintenant, nous allons expliquer les étapes ci-dessus avec un exemple :

Étape 1 : Créer une base de données

Dans le langage de requête structuré, la création d'une base de données est la première étape pour stocker les tables structurées dans la base de données.

Utilisez la syntaxe SQL suivante pour créer une base de données :

 CREATE DATABASE Database_Name; 

Supposons que vous souhaitiez créer le Véhicules base de données. Pour cela, vous devez taper la commande suivante en Structured Query Language :

 CREATE DATABASE Vehicles; 

Étape 2 : Créez deux tables dans la base de données

Maintenant, vous devez utiliser la syntaxe SQL suivante pour créer les tables dans votre base de données :

 CREATE TABLE table_name ( column_Name_1 data type (size of the column_1), column_Name_2 data type (size of the column_2), column_Name_3 data type (size of the column_3), ... column_Name_N data type (size of the column_1) ); 

La requête SQL suivante crée le Voitures_Détails tableau dans le Véhicules base de données.

 CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT PRIMARY KEY, Model INT, Cars_Name VARCHAR (20), Colour VARCHAR (20), ); 

La requête suivante crée Cars_Price_Détails tableau dans le Véhicules base de données:

 CREATE TABLE Cars_Price_Details ( Model INT NOT NULL PRIMARY KEY, Cars_Price INT NOT NULL ); 

Étape 3 : Afficher la structure de la table avant l'ajout de la clé étrangère

Après la création de la table et l'insertion des données, vous pouvez afficher la structure des deux tables en tapant la requête suivante dans votre application SQL :

 DESC Cars or DESCRIBE Cars ; 

Champ Taper NUL Clé Défaut Supplémentaire
Numéro d'immatriculation INT NON À NUL incrémentation automatique
Modèle INT Oui - NUL -
Nom_voiture Varchar(20) Oui - NUL
Couleur Varchar(20) Oui - NUL -

 DESC Cars_Price_Details; 

Champ Taper NUL Clé Défaut Supplémentaire
Modèle de voiture INT Non À NUL -
Prix_Voiture INT Non - NUL

Étape 4 : Ajouter une clé étrangère à la colonne du tableau

Si vous souhaitez ajouter la clé étrangère au moment de la création de la table, vous devez alors utiliser la syntaxe CREATE TABLE suivante en SQL :

 CREATE TABLE table_name1 ( Column_Name_1 data type (size of the column_1), Column_Name_2 data type (size of the column_2), ......, Column_Name_N data type (size of the column_N) FOREIGN KEY REFERENCES Table_Name2 (Column_Name) ) ; 

Exemple

La requête suivante ajoute la FOREIGN KEY dans la colonne « Modèle » de la table Cars_Details :

 CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT, Model INT FOREIGN KEY REFERENCES Cars_Price_Details (Car_Model), Cars_Name VARCHAR (20), Color VARCHAR (20) UNIQUE, Price INT NOT NULL ) ; 

Cette requête dans SQL rejoint les Voitures_Détails table avec le Cars_Price_Détails table à l’aide d’une clé étrangère.

Étape 5 : Afficher la structure de la table après l'ajout de la clé étrangère

Pour vérifier le résultat de la requête exécutée dans le 4èmeétape, vous devez taper la commande DESC suivante en SQL :

 DESC Cars_Details; 

Champ Taper NUL Clé Défaut Supplémentaire
Numéro d'immatriculation INT Oui PRIMAIRE NUL incrémentation automatique
Modèle INT Non ÉTRANGER NUL -
Nom_voiture Varchar(20) Oui - NUL -
Couleur Varchar(20) Oui - NUL -
Prix INT NON - NUL -
Moyenne INT NON - 0 -

Comme le montre le résultat ci-dessus, la colonne Modèle est créée en tant que clé étrangère.

Ajouter une clé étrangère à la table existante

Si vous souhaitez ajouter la clé étrangère à la table existante, vous devez utiliser la syntaxe ALTER suivante en SQL :

 ALTER TABLE Table_Name1 ADD CONSTRAINT ForeignKey_Name FOREIGN KEY (Column_Name) REFERENCES Table_Name2 (Column_Name); 

La requête suivante ajoute une FOREIGN KEY sur la colonne Model lorsque la table Cars_Details existe déjà dans le système de base de données :

 ALTER TABLE Cars_Details ADD CONSTRAINT FK_Cars_Details FOREIGN KEY (Model) REFERENCES Cars_Price_Details (Car_Model); 

Cette requête ALTER dans SQL joint les Voitures_Détails table avec le Cars_Price_Détails table à l’aide d’une clé étrangère.

Supprimer la clé étrangère de la table

Si vous souhaitez supprimer la clé étrangère de la colonne de la table, vous devez utiliser ce qui suit MODIFIER syntaxe en SQL :

 ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name; 

La requête suivante supprime la FOREIGN KEY créée de la colonne Model de la table Cars_Details :

 ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;