Maison >base de données >tutoriel mysql >Comment insérer des données d'une table à une autre à l'aide de la syntaxe SQL standard ?
SQL : Copie de données entre tables
Une tâche SQL fréquente consiste à transférer des données d'une table à une autre. Bien que la syntaxe spécifique puisse différer légèrement selon les systèmes de bases de données, une approche largement compatible utilise l'instruction INSERT INTO ... SELECT
.
Syntaxe SQL standard pour l'insertion de données
La syntaxe suivante offre un haut degré de compatibilité entre divers systèmes de gestion de bases de données (SGBD) :
<code class="language-sql">INSERT INTO target_table (column1, column2, ...) SELECT source_column1, source_column2, ... FROM source_table [WHERE condition];</code>
Voici une répartition :
target_table
: La table recevant les nouvelles données.column1, column2, ...
: Les colonnes de target_table
où les données seront insérées. La commande doit correspondre à la déclaration SELECT
.source_column1, source_column2, ...
: Les colonnes de source_table
fournissant les données. Les types de données doivent être compatibles avec les target_table
colonnes correspondantes.source_table
: Le tableau fournissant les données.WHERE condition
(facultatif) : filtre les données de source_table
avant l'insertion. Seules les lignes satisfaisant la condition sont copiées.Compatibilité SGBD
Cette INSERT INTO ... SELECT
méthode fonctionne généralement sur un large éventail de SGBD, notamment :
Exemple illustratif
Disons que nous avons une table « employés » et une table « department_summary ». Pour remplir department_summary
avec les noms des services des employés :
<code class="language-sql">INSERT INTO department_summary (department_name) SELECT department FROM employees;</code>
Cela insère tous les noms de département uniques de la table employees
dans la colonne department_name
de la table department_summary
. Notez que les noms de département en double ne seront insérés qu’une seule fois. Si vous devez gérer les doublons différemment, vous devrez ajouter une logique supplémentaire (par exemple, en utilisant GROUP BY
et les fonctions d'agrégation).
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!