Maison > Article > base de données > mysql requête clés étrangères
Dans la base de données MySQL, une clé étrangère signifie qu'une ou plusieurs colonnes d'une table peuvent faire référence aux colonnes d'une autre table, formant ainsi une relation entre la table maître et la table esclave. Les clés étrangères sont l’un des moyens importants pour garantir l’intégrité et la cohérence des données. Mais dans le développement réel, nous devons souvent interroger des données associées à des clés étrangères, et les opérations de requête impliquant des clés étrangères doivent prêter attention à certains problèmes.
Cet article présentera en détail les connaissances liées aux clés étrangères des requêtes MySQL.
1. Introduction aux clés étrangères
La clé étrangère, également appelée clé externe et clé associée, est une contrainte utilisée dans la base de données MySQL pour maintenir l'intégrité et la cohérence des données. Il relie une colonne d'une table à une colonne d'une autre table.
Quand une table a une relation de clé étrangère avec une autre table, elles forment la relation entre la table maître et la table esclave. Les colonnes de la table maître sont appelées clés primaires et les colonnes de la table esclave sont appelées clés étrangères.
Les contraintes de clé étrangère peuvent être divisées en deux catégories :
1. Mise à jour en cascade (CASCADE UPDATE) : Lorsque la clé primaire de la table primaire est mise à jour, la clé étrangère de la table secondaire sera également mise à jour en conséquence.
2. Suppression en cascade (CASCADE DELETE) : Lorsque la clé primaire de la table primaire est supprimée, la clé étrangère de la table secondaire sera également supprimée en conséquence.
2. Requête de clé étrangère
1. Interroger une seule clé étrangère
Lorsque nous devons interroger les données associées à une clé étrangère dans un colonne d'une table Quand, nous pouvons utiliser INNER JOIN pour effectuer des requêtes associées. L'opération spécifique est la suivante :
SELECT 表1.列1, 表2.列2 FROM 表1 INNER JOIN 表2 ON 表1.外键列 = 表2.主键列
Parmi elles, la table 1 et la table 2 sont les tables qui doivent être associées, la colonne 1 est la colonne à interroger dans la table 1, et la colonne 2 est la colonne à interroger dans le tableau 2. La colonne clé est la colonne du tableau 1 qui est associée au tableau 2, et la colonne de clé primaire est la colonne de clé primaire du tableau 2.
Exemple :
Nous avons deux tables, l'une est la table des étudiants et l'autre est la table des notes. La table des étudiants comporte un champ de numéro d'étudiant et la table des notes comporte un champ de clé étrangère lié au champ de numéro d'étudiant dans la table des étudiants. Nous devons interroger les noms, les matières et les notes des étudiants dans le tableau des notes. L'opération spécifique est la suivante :
SELECT s.name, c.subject, c.score FROM student s INNER JOIN score c ON s.sid = c.sid
2 Interroger plusieurs clés étrangères
Quand nous en avons besoin. pour interroger plusieurs clés étrangères dans une certaine table Lorsque les données sont associées à plusieurs clés étrangères, nous pouvons utiliser plusieurs INNER JOIN pour effectuer des requêtes associées. L'opération spécifique est la suivante :
SELECT 表1.列1, 表2.列2, 表3.列3, … FROM 表1 INNER JOIN 表2 ON 表1.外键列1 = 表2.主键列1 INNER JOIN 表3 ON 表2.外键列2 = 表3.主键列2 …
Parmi eux, le tableau 1, le tableau 2 et le tableau 3 sont les tables qui doivent être associées, la colonne 1 est la colonne à interroger dans le tableau 1, et La colonne 2 est la colonne à interroger dans le tableau 2. La colonne, la colonne 3 est la colonne à interroger dans le tableau 3, la colonne de clé étrangère 1 est la colonne du tableau 1 associée au tableau 2, la colonne de clé étrangère 2 est la colonne du tableau 2 associé au tableau 3, la colonne de clé primaire 1 est la table La colonne de clé primaire en 2, la colonne de clé primaire 2 est la colonne de clé primaire du tableau 3.
Exemple :
Nous avons trois tables, une est la table des étudiants, une est la table des sujets et une est la table des notes. La table des étudiants et la table des matières ont chacune un champ d'identification. Il existe deux champs de clé étrangère, l'identification de l'étudiant et l'identification de la matière, dans la table des notes qui sont liés aux champs d'identification de la table des étudiants et de la table des matières. Nous devons maintenant interroger les noms, les matières et les notes des étudiants dans le tableau des notes. Les opérations spécifiques sont les suivantes :
SELECT s.name, se.subject, c.score FROM student s INNER JOIN score c ON s.sid = c.sid INNER JOIN subject se ON c.subject_id = se.id
3. Précautions pour interroger les clés étrangères
. Lorsque vous utilisez des clés étrangères pour interroger, vous devez faire attention aux aspects suivants :
1 Assurez-vous que la table associée existe déjà.
Avant d'établir une relation de clé étrangère, vous devez vous assurer que les deux tables existent déjà. Sinon, une erreur se produira lors de la création de la relation de clé étrangère.
2. Assurez-vous que le type de données et la longueur de la colonne de clé étrangère et de la colonne de clé primaire sont cohérents.
Lors de l'établissement d'une association de clé étrangère, vous devez vous assurer que le type de données et la longueur de la colonne de clé étrangère associée et de la colonne de clé primaire sont cohérents, sinon une erreur se produira. Dans le même temps, vous devez également faire attention lorsque vous effectuez des requêtes, sinon des problèmes avec les résultats de la requête pourraient survenir.
3. Évitez les valeurs NULL dans les colonnes de clé étrangère.
Lorsque vous effectuez des requêtes de clé étrangère, évitez les valeurs NULL dans les colonnes de clé étrangère. La présence de valeurs NULL entraînera des résultats de requête incohérents.
4. Évitez les jointures de données volumineuses.
Lorsque vous effectuez des requêtes multi-tables, veillez à éviter de grandes quantités de jointures de données, sinon les performances des requêtes seront sérieusement affectées.
5. Faites attention aux opérations en cascade des relations à clés étrangères.
Lors d'une requête utilisant des relations de clé étrangère, vous devez faire attention aux opérations en cascade des contraintes de clé étrangère pour éviter que les opérations de suppression ou de mise à jour ne provoquent des effets néfastes sur la table associée.
4. Résumé
Grâce à l'introduction de cet article, je pense que vous avez compris les concepts de base et les méthodes de fonctionnement de la requête de clé étrangère MySQL, ainsi que ce dont vous avez besoin pour faites attention lors de l'exécution d'une question de requête de clé étrangère. Dans le développement réel, il est nécessaire d'appliquer raisonnablement des relations de clé étrangère pour les requêtes de données en fonction des besoins spécifiques de l'entreprise et de la conception de la structure des tables de base de données, ce qui peut non seulement améliorer l'efficacité des requêtes, mais également garantir l'intégrité et la cohérence des données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!