INSERT MYSQL dans SELECT dans une commande

INSERT MYSQL dans SELECT dans une commande
Nous connaissons tous l'insert MySQL de base dans la clause qui nous permet d'insérer des valeurs dans un tableau.

Dans ce didacticiel, nous en reportons à partir de cela et examinerons l'insert dans - Sélectionnez la déclaration que nous pouvons utiliser pour insérer des valeurs dans un tableau où les valeurs proviennent du résultat d'une instruction SELECT.

Utilisation de base

Si vous vous souvenez de l'insert de base dans la clause dans MySQL, nous pouvons ajouter des données comme:

Insérer dans tbl_name valeurs (valeurs1… valeursn);

Cependant, nous pouvons utiliser l'instruction SELECT au lieu de la clause de valeurs.

La syntaxe générale est:

Insérer dans TBL_NAME (COLS) Sélectionnez COLS_LIST dans TBL_NAME où la condition;

La requête ci-dessus utilise la clause SELECT pour sélectionner des valeurs spécifiées dans d'autres tables et les insérer dans la table de définition.

Dans la plupart des cas, nous utilisons l'insertion dans la clause - Sélectionnez lors de la copie des valeurs dans une autre table ou uniquement des sections des valeurs d'un tableau.

Exemple de cas d'utilisation

Permettez-moi d'illustrer comment nous pouvons utiliser l'insert avec l'instruction SELECT à l'aide d'une base de données du monde réel.

NOTE: Pour cet exemple, j'utiliserai la base de données Sakila pour les illustrations. N'hésitez pas à utiliser toute autre base de données ou à télécharger une copie de la base de données de l'exemple de Sakila à partir de la ressource fournie ci-dessous:

https: // dev.mysql.com / doc / index-autre.html

Commençons par créer un tableau qui contiendra les données comme indiqué dans les requêtes ci-dessous:

Utilisez Sakila;
Table de dépôt si existe currad_info;
Créer la table Currate_info (
id int key primaire auto_increment,
Titre Varchar (100),
Note Varchar (50),
Film_length int
));

Enfin, nous pouvons utiliser l'insert dans l'instruction pour le tableau ci-dessus comme indiqué dans la requête ci-dessous:

Insérer dans currate_info (titre, note, film_length) sélectionnez le titre, la cote, la longueur du film;

Une fois que la requête a été exécutée avec succès, nous pouvons interroger le CORATED_TABLE et voir les données comme indiqué ci-dessous:

MySQL> Utilisez Sakila;
La base de données modifiée
MySQL> SELECT * FROM Currate_Info Limit 5;
+----+------------------+--------+-------------+
| ID | Titre | Note | Film_length |
+----+------------------+--------+-------------+
| 1 | Dinosaure de l'Académie | PG | 86 |
| 2 | Ace Goldfinger | G | 48 |
| 3 | Trous d'adaptation | NC-17 | 50 |
| 4 | Préjugés d'affaires | G | 117 |
| 5 | Œuf africain | G | 130 |
+----+------------------+--------+-------------+
5 lignes en jeu (0.00 sec)

Comme vous pouvez le voir, nous pouvons utiliser l'instruction SELECT au lieu de la clause de valeurs pour ajouter des valeurs à un tableau.

NOTE: Soyez prudent lorsque vous utilisez l'instruction SELECT sur une grande base de données car elle pourrait ralentir la base de données ou provoquer un crash.

Conclusion

Dans ce tutoriel, nous avons rapidement appris à utiliser l'insert MySQL dans la clause avec l'instruction SELECT pour ajouter des données à partir du résultat d'une requête sélectionnée.