Dans le marché actuel où de nombreuses entreprises multinationales utilisent des bases de données relationnelles pour gérer les données, il est très important de comprendre comment chaque table peut être liée les unes aux autres. Ainsi, dans cet article sur Foreign Key SQL, je vais discuter de la clé étrangère dans les tables pour vous faire comprendre la relation entre les tables.
Les sujets suivants seront abordés dans cet article :
- Qu'est-ce qu'une contrainte de clé étrangère ?
- Règles pour la clé étrangère
- Opérations de clé étrangère :
- Clé étrangère SQL lors de la création d'une table
- Clé étrangère SQL sur Alter Table
- Supprimer la clé étrangère
Qu'est-ce qu'une contrainte de clé étrangère ?
Une clé étrangère est un type de clé utilisé pour lier deux tables dans une base de données. Ainsi, une clé étrangère est un attribut ou une collection d'attributs dans une table qui fait référence à la clé primaire dans une autre table.
Par exemple, si la table A et la table B sont liées l'une à l'autre, alors si la table A se compose de la clé primaire, cette table sera appelée la table référencée ou la table parent. De même, si la table B consiste en une clé étrangère, cette table est appelée table de référence ou table enfant. Reportez-vous à l'image ci-dessous :
Maintenant que vous savez ce qu'est une clé étrangère, dans cet article sur la clé étrangère SQL, laissez-nous comprendre les règles de la clé étrangère.
Règles pour la clé étrangère
Les règles de la clé étrangère sont les suivantes :
- La table avec la clé étrangère est appelée la table enfant et la table référencée par la clé étrangère est appelée la table parent.
- Les valeurs nulles sont autorisées dans une clé étrangère
- Les clés étrangères peuvent être dupliquées
- Il peut y avoir plus d'une seule clé étrangère dans une table
- La relation établie entre les tables est connue sous le nom d'intégrité référentielle
Maintenant que vous savez quelles sont les règles d'une clé étrangère, dans cet article sur la clé étrangère SQL, voyons les opérations de la clé étrangère.
Opérations de clé étrangère :
Pour comprendre les différentes opérations présentes sur la clé étrangère, considérez les deux tableaux suivants :
Tableau des clients :
ID client | Nom du client | Numéro de téléphone |
1 | Rohan | 9876543210 |
2 | Sonali | 9876567864 |
3 | Ajay | 9966448811 |
4 | Geeta | 9765432786 |
5 | Shubham | 9944888756 |
Tableau des cours :
ID de cours | CourseName | ID client |
c01 | DevOps | 2 |
c02 | Apprentissage automatique | 4 |
c03 | RPA | 1 |
c04 | Tableau | 3 |
c05 | AWS | 2 |
Maintenant, si vous observez, la colonne customerID dans la table courses fait référence à la colonne customerID dans la table des clients. La colonne customerID de la table des clients est la clé primaire et la colonne customerID de la table des cours est la clé étrangère de cette table.
Commencer par la première opération :
Clé étrangère sur la création de table
Vous pouvez utiliser la syntaxe suivante pour créer une clé étrangère sur la colonne "customerID" lorsque vous créez la table "courses" :
#For SQL Server/ MS Access/ Oracle CREATE TABLE courses ( courseID varchar NOT NULL PRIMARY KEY, courseName varchar NOT NULL, customerID int FOREIGN KEY REFERENCES customers(customerID) ); #For MySQL CREATE TABLE courses ( courseID varchar NOT NULL PRIMARY KEY, courseName varchar NOT NULL, customerID int PRIMARY KEY (courseID), FOREIGN KEY (customerID) REFERENCES customers(customerID) );
Appliquer une clé étrangère sur plusieurs colonnes
Pour appliquer une clé étrangère sur plusieurs colonnes lors de la création d'une table, reportez-vous à l'exemple suivant :
CREATE TABLE courses ( courseID varchar NOT NULL, courseName varchar NOT NULL, customerID int, PRIMARY KEY (courseID), CONSTRAINT FK_CustomerCourse FOREIGN KEY (customerID) REFERENCES customers(customerID) );
Ensuite, dans cet article sur Foreign Key SQL, voyons comment utiliser la clé étrangère sur Alter Table.
Clé étrangère sur Alter Table
Vous pouvez utiliser la syntaxe suivante pour créer une clé étrangère sur la colonne "customerID" lorsque la table "courses" est déjà créée et que vous souhaitez simplement modifier la table :
ALTER TABLE courses ADD FOREIGN KEY (customerID) REFERENCES customers(customerID);
Si vous souhaitez ajouter un nom à la contrainte de clé étrangère et la définir sur plusieurs colonnes, utilisez la syntaxe SQL suivante :
ALTER TABLE courses ADD CONSTRAINT FK_CustomerCourse FOREIGN KEY (customerID) REFERENCES Customers(customerID);
Ensuite, dans cet article sur Foreign Key SQL, voyons comment supprimer une clé étrangère
Supprimer la clé étrangère
Pour supprimer la clé étrangère, vous pouvez vous référer à l'exemple suivant :
#For SQL Server/ MS Access/ Oracle ALTER TABLE courses DROP CONSTRAINT FK_CustomerCourse; For MYSQL ALTER TABLE courses DROP FOREIGN KEY FK_CustomerCourse;
Avec cela, nous arrivons à la fin de cet article. J'espère que vous avez compris comment utiliser la clé étrangère dans SQL. Si vous souhaitez en savoir plus sur MySQL et découvrez cette base de données relationnelle open source, puis consultez notre Formation de certification MySQL DBA qui comprend une formation en direct dirigée par un instructeur et une expérience de projet réelle. Cette formation vous aidera à comprendre MySQL en profondeur et vous aidera à maîtriser le sujet.
Vous avez une question pour nous ? Veuillez le mentionner dans la section des commentaires de cet article sur "Foreign Key SQL" et je vous recontacterai.