Comment insérer des données d'une table dans une autre table ? (SQL Insert into ... values ( SELECT ... FROM ... ))

Pour transférer les données d'une table dans une autre, il suffit de combiner une requête d'insertion avec une requête de sélection.

Le langage SQL permet de manipuler les données d'une table mais peut également gérer les interactions entre plusieurs tables. Il est possible de transférer les données d'une table dans une autre. Il suffit pour cela de combiner une requête d'insertion (INSERT) avec une requête de sélection (SELECT).

Pour effectuer un transfert de la table 1 vers la table 2, il faut, dans la requête de récupération, avoir le même nombre de données récupérées que de données que l'on va insérer dans la table. On peut préciser la liste des champs pour la requête d'insertion mais ce n'est pas obligatoire.

On peut sélectionner des champs dans plusieurs tables, utiliser des conditions, des constantes et faire toutes les opérations que l'on peut faire habituellement avec l'opérateur SELECT. Cette syntaxe présente l'avantage d'être compatible avec tous les systèmes de gestion de base de données car il s'agit d'un standard du langage SQL.

Exemple de requête d'insertion combinée à une requête de sélection :

<p>INSERT INTO table1 (colonne1, colonne2) SELECT col1, col2 FROM table 2</p>

SQL en pratique :

SQL