Comment définir des clés étrangères dans MySQL
Qu'est-ce qu'une clé étrangère ?
Dans une base de données, les colonnes d'une table sont appelées champs ou attributs de la table. Par exemple, dans la base de données d'un site de commerce électronique, le numéro de téléphone mobile de l'utilisateur peut être stocké dans une table nommée « utilisateur » (utilisateur), et la commande de l'utilisateur est stockée dans une autre table nommée « commande » (commande) du milieu. Il existe une relation un-à-plusieurs entre ces deux tables, c'est-à-dire qu'un utilisateur peut avoir plusieurs commandes et qu'une commande appartient à un seul utilisateur.
La clé étrangère est un terme de base de données relationnelle qui est une contrainte qui joint deux tables. Les contraintes de clé étrangère garantissent que lors du référencement de données dans une autre table, une instance doit être créée avec une valeur qui correspond à la valeur de l'autre table.
L'avantage des clés étrangères est qu'elles assurent l'intégrité des relations entre les tables de données. Cela signifie que s'il existe une contrainte de clé étrangère entre deux tables, lorsqu'un enregistrement de la table primaire est supprimé ou mis à jour, toutes les clés étrangères qui en dépendent seront automatiquement supprimées ou mises à jour.
Comment paramétrer les clés étrangères ?
Pour configurer une clé étrangère, vous devez vous assurer que le moteur MySQL que vous utilisez la prend en charge. Actuellement, MySQL prend en charge les moteurs MyISAM, InnoDB et NDB, dont InnoDB est le moteur le plus utilisé et le seul moteur MySQL prenant en charge les clés étrangères.
Si vous souhaitez utiliser des contraintes de clé étrangère, assurez-vous que votre table utilise le moteur InnoDB. Vous pouvez exécuter la commande suivante pour vérifier le type de moteur de la table :
SHOW TABLE STATUS FROM database_name WHERE Name='table_name';
Où, database_name
est le nom de la base de données, table_name
est le moteur tapez que vous souhaitez vérifier le nom de la table. database_name
是数据库名称,table_name
是您要查看引擎类型的表名。
如果您的表使用的是不支持外键约束的引擎,则需要将其更改为InnoDB引擎,执行以下命令:
ALTER TABLE table_name ENGINE=InnoDB;
接下来,您需要创建一个表并添加一个外键约束。以下是相应的代码示例:
CREATE TABLE order ( order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, date_added DATETIME, FOREIGN KEY (user_id) REFERENCES user(user_id) );
在此示例中,我们创建了一个“订单”(order)表,其中包括订单ID(order_id)、用户ID(user_id)和日期(date_added)字段。然后,我们为“订单”表添加了一个外键约束,以确保在添加新订单之前先存在用户ID。
在这个约束表达式中,user_id
是当前表中的字段名称,user
是所依赖的表的名称,user_id
是所依赖表中的字段名称。此外,FOREIGN KEY
关键字用于定义外键约束。
在MySQL中,还可以将外键约束定义为CASCADE
、SET NULL
或RESTRICT
。以下是这些选项的说明:
CASCADE:在指定父项时,将同时删除或更新子项。
SET NULL:在指定父项时将删除或更新子项的值为Null。
RESTRICT:在指定父项时阻止删除或更新子项。
以下是完整的代码示例,其中包括CASCADE
、SET NULL
和RESTRICT
选择:
-- 创建父表 CREATE TABLE user ( user_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL ); -- 创建子表,并定义外键约束 CREATE TABLE order ( order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, date_added DATETIME, FOREIGN KEY (user_id) REFERENCES user(user_id) ON DELETE CASCADE ON UPDATE SET NULL );
在此示例中,我们为“订单”表添加了两个选项。ON DELETE CASCADE
选项表示在删除用户记录时,也将删除所有与该用户关联的订单记录。ON UPDATE SET NULL
-- 查找所有订单 SELECT * FROM order; -- 查找用户John的所有订单 SELECT * FROM order WHERE user_id=(SELECT user_id FROM user WHERE username='John');
-- 修改订单,将John的所有订单修改为Jane的订单 UPDATE order SET user_id=(SELECT user_id FROM user WHERE username='Jane') WHERE user_id=(SELECT user_id FROM user WHERE username='John');
user_id
est le nom du champ dans la table actuelle, user
est le nom de la table dépendante, user_id
est le nom du champ dans la table dépendante. De plus, le mot-clé FOREIGN KEY
est utilisé pour définir les contraintes de clé étrangère. Dans MySQL, les contraintes de clé étrangère peuvent également être définies comme CASCADE
, SET NULL
ou RESTRICT
. Voici les descriptions de ces options :
- CASCADE : Lorsqu'un parent est spécifié, les enfants seront également supprimés ou mis à jour. #🎜🎜#
- #🎜🎜#SET NULL : Lors de la spécification de l'élément parent, la valeur de l'élément enfant sera supprimée ou mise à jour pour être Null. #🎜🎜#
- #🎜🎜#RESTRICT : Empêche la suppression ou la mise à jour des enfants lorsqu'un parent est spécifié. #🎜🎜#
CASCADE
, SET NULL
et RESTRICT code code>Sélectionnez : #🎜🎜#rrreee#🎜🎜# Dans cet exemple, nous avons ajouté deux options à la table Commandes. L'option <code>ON DELETE CASCADE
indique que lorsqu'un enregistrement utilisateur est supprimé, tous les enregistrements de commande associés à l'utilisateur seront également supprimés. L'option ON UPDATE SET NULL
indique que lors de la mise à jour d'un enregistrement utilisateur, l'ID utilisateur dans l'enregistrement de commande sera défini sur une valeur Null. #🎜🎜##🎜🎜#Comment utiliser les clés étrangères ? #🎜🎜##🎜🎜#Dans la programmation de bases de données, vous pouvez utiliser certaines commandes de base pour interroger des tables contenant des clés étrangères. Voici un exemple de code : #🎜🎜#rrreee#🎜🎜#Dans les deux exemples, nous interrogeons la table "Orders" qui contient des contraintes de clé étrangère. Dans le deuxième exemple, nous avons également utilisé une requête imbriquée pour exporter les enregistrements de commande d'un utilisateur spécifique. #🎜🎜##🎜🎜#Lorsque vous effectuez une opération de modification, assurez-vous que la modification ne viole pas les contraintes de clé étrangère. Si la valeur modifiée ne satisfait pas aux contraintes de clé étrangère, une erreur se produira. Si cela se produit, modifiez les données appropriées pour satisfaire les contraintes de clé étrangère. Voici un exemple : #🎜🎜#rrreee#🎜🎜# Nous remplacerons toutes les commandes appartenant à l'utilisateur "John" par des commandes appartenant à l'utilisateur "Jane", pour référence. Avant de faire cela, assurez-vous que l'utilisateur "Jane" existe déjà. #🎜🎜#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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

Redis utilise une architecture filetée unique pour fournir des performances élevées, une simplicité et une cohérence. Il utilise le multiplexage d'E / S, les boucles d'événements, les E / S non bloquantes et la mémoire partagée pour améliorer la concurrence, mais avec des limites de limitations de concurrence, un point d'échec unique et inadapté aux charges de travail à forte intensité d'écriture.

La position de MySQL dans les bases de données et la programmation est très importante. Il s'agit d'un système de gestion de base de données relationnel open source qui est largement utilisé dans divers scénarios d'application. 1) MySQL fournit des fonctions efficaces de stockage de données, d'organisation et de récupération, en prenant en charge les systèmes Web, mobiles et de niveau d'entreprise. 2) Il utilise une architecture client-serveur, prend en charge plusieurs moteurs de stockage et optimisation d'index. 3) Les usages de base incluent la création de tables et l'insertion de données, et les usages avancés impliquent des jointures multiples et des requêtes complexes. 4) Des questions fréquemment posées telles que les erreurs de syntaxe SQL et les problèmes de performances peuvent être déboguées via la commande Explication et le journal de requête lente. 5) Les méthodes d'optimisation des performances comprennent l'utilisation rationnelle des indices, la requête optimisée et l'utilisation des caches. Les meilleures pratiques incluent l'utilisation des transactions et des acteurs préparés

MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.

La construction d'une base de données SQL comprend 10 étapes: sélectionner des SGBD; Installation de SGBD; créer une base de données; créer une table; insérer des données; récupération de données; Mise à jour des données; supprimer des données; gérer les utilisateurs; sauvegarde de la base de données.
