Maison > Article > base de données > Comment utiliser l'insertion dans la sélection
Dans les bases de données relationnelles, INSERT INTO SELECT est une instruction SQL courante utilisée pour insérer les résultats d'une requête dans une autre table. Cette structure syntaxique est très utile pour copier facilement des données d'une table à une autre, ou pour filtrer et insérer des données en fonction de certaines conditions.
La structure syntaxique de INSERT INTO SELECT est la suivante :
INSERT INTO 表名 (列1, 列2, 列3, ...) SELECT 列1, 列2, 列3, ... FROM 来源表 WHERE 条件;
Parmi elles, la clause INSERT INTO spécifie la table cible et la colonne cible dans lesquelles insérer les données. La clause SELECT définit dans quelle table sélectionner les données et spécifie les colonnes à insérer dans la table cible. Vous pouvez sélectionner les colonnes appropriées selon vos besoins afin que toutes les colonnes n'aient pas besoin d'être insérées dans la table cible.
La table source dans la clause SELECT fait référence à la table dans laquelle les données doivent être sélectionnées. Il peut s'agir d'un nom de table spécifique ou d'un ensemble de résultats de requête. Lorsque vous utilisez INSERT INTO SELECT, vous pouvez imbriquer plusieurs instructions de requête selon vos besoins pour répondre aux exigences de transfert et de filtrage des données.
La clause WHERE est facultative et est utilisée pour filtrer les données qui répondent à des conditions spécifiques dans la table source. Par exemple, vous pouvez utiliser la clause WHERE pour limiter l'insertion des seules lignes qui remplissent certaines conditions, ou utiliser d'autres opérateurs (tels que IN, LIKE, etc.) pour filtrer davantage les données.
Voici quelques exemples d'utilisation de INSERT INTO SELECT :
Opération d'insertion simple :
Supposons qu'il y ait deux tables A et B. La table A contient les colonnes identifiant, nom et âge, et la table B contient les colonnes identifiant et adresse. Pour insérer les données du tableau A dans la colonne correspondante du tableau B, vous pouvez utiliser l'instruction suivante :
INSERT INTO B (id, address) SELECT id, name FROM A;
De cette façon, la valeur de la colonne id du tableau A sera insérée dans la colonne id du tableau B, et le nom dans le tableau A La valeur de la colonne sera insérée dans la colonne adresse du tableau B. Les autres colonnes seront ignorées.
Utilisez la clause WHERE pour filtrer :
Si vous souhaitez uniquement insérer des données qui répondent à des conditions spécifiques, vous pouvez ajouter une clause WHERE dans l'instruction SELECT. Par exemple, pour insérer uniquement les enregistrements dont l'âge est supérieur à 18 ans dans le tableau A dans le tableau B, vous pouvez utiliser l'instruction suivante :
INSERT INTO B (id, address) SELECT id, name FROM A WHERE age > 18;
De cette façon, seules les lignes qui remplissent les conditions seront insérées dans le tableau B.
Insertion à l'aide de sous-requêtes :
Dans la clause SELECT, vous pouvez également utiliser des sous-requêtes pour sélectionner des données. Par exemple, pour insérer des lignes qui remplissent les conditions dans une autre table, vous pouvez utiliser l'instruction suivante :
INSERT INTO C (id, address) SELECT id, address FROM B WHERE id IN (SELECT id FROM A WHERE age > 18);
De cette façon, sélectionnez d'abord les identifiants qui remplissent les conditions de la table A, puis sélectionnez les enregistrements correspondants de la table B en fonction sur ces identifiants, et insérez-le dans le tableau C.
Résumé
INSERT INTO SELECT est une instruction SQL puissante qui peut facilement copier des données d'une table à une autre, ou filtrer et insérer des données en fonction de certaines conditions. Sa flexibilité le rend très utile dans les opérations de bases de données réelles.
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!