Afficher les clés étrangères dans MySQL

Preet Sanghavi 30 janvier 2023
  1. Créer une table dans MySQL
  2. Afficher les clés étrangères d’une table dans MySQL
Afficher les clés étrangères dans MySQL

Dans ce tutoriel, nous visons à explorer comment afficher les clés étrangères d’une table et d’une colonne dans MySQL.

Le type de clé qui fait référence à la clé principale, également appelée clé primaire d’une autre table, est appelé clé étrangère. Il est important de comprendre les clés étrangères d’une table lorsque vous travaillez avec MySQL.

De plus, une colonne d’une table particulière peut également avoir des clés étrangères qui lui sont associées. Essayons de comprendre comment récupérer ces clés étrangères.

Créer une table dans MySQL

Avant de commencer, nous allons créer un jeu de données factice avec lequel travailler. Ici, nous allons créer une table, student_details, ainsi que quelques lignes.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName)
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

La requête ci-dessus crée une table avec des lignes contenant les noms et prénoms des étudiants. Pour afficher les entrées dans les données, nous utilisons le code suivant :

SELECT * FROM student_details;

Le code ci-dessus donnerait la sortie suivante :

stu_id  stu_firstName   stu_lastName
1         Preet         Sanghavi
2         Rich          John
3         Veron         Brow
4         Geo           Jos
5         Hash          Shah
6         Sachin        Parker
7         David	        Miller

Afficher les clés étrangères d’une table dans MySQL

Pour récupérer les clés étrangères d’une table dans MySQL, nous utilisons le bloc de code suivant :

SELECT
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = '<database>' AND
  REFERENCED_TABLE_NAME = '<table>';

Comme nous pouvons le voir, dans la requête mentionnée ci-dessus, nous devons entrer les noms de la base de données et de la table pour récupérer les clés étrangères. Cette tâche peut être réalisée à l’aide de la requête suivante :

SELECT
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = '<boatdb>' AND
  REFERENCED_TABLE_NAME = '<student_details>';

La requête susmentionnée porte le nom de la base de données boatdb et le nom de la table student_details, comme mentionné précédemment. La sortie du code susmentionné est la suivante :

1,TABLE_NAME,,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,-31,31
2,COLUMN_NAME,,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,-31,31
3,CONSTRAINT_NAME,information_schema,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,0,0
4,REFERENCED_TABLE_NAME,information_schema,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,0,0
5,REFERENCED_COLUMN_NAME,information_schema,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,0,0

De plus, nous pouvons également trouver les clés étrangères associées à une colonne particulière. Ceci peut être réalisé à l’aide de la requête suivante :

SELECT
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = 'boatdb' AND
  REFERENCED_TABLE_NAME = 'student_details' AND
  REFERENCED_COLUMN_NAME = 'student_firstName';

Comme nous pouvons le voir, un REFERENCED_COLUMN_NAME supplémentaire a été ajouté.

Par conséquent, à l’aide de cette technique, nous pouvons afficher efficacement les clés étrangères associées à une table et une colonne particulières.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub