formations / mysql / mysql-requete-insert-into
MySql - Requête INSERT INTO
La requête INSERT INTO permet d'ajouter de nouvelles lignes dans une table existante, ou de créer une nouvelle table avec des données initiales. Nous explorerons les différentes façons de l'utiliser, en mettant l'accent sur la structure de base, les bonnes pratiques et les astuces pour éviter les erreurs courantes.
Ajouter un seul enregistrement
On peut ajouter une ligne de données dans une table en utilisant la commande SQL "INSERT INTO" et en spécifiant les colonnes de la table concernée et les valeurs associées au colonnes comme l'illustre le code suivant qui va rajouter un utilisateur dans la table dédiée de la base de données "base_demo".
USE base_demo;
INSERT INTO utilisateurs (id, nom, prenom, email, password)
VALUES
(null, "Doucet", "Philippe", "philippedoucet@dayrep.com", "password");
Dans la requête ci-dessus on a déclaré la totalité des colonnes de la table. Il est bien sur possible de ne déclarer qu'une partie des colonnes en s'assurant de ne pas déclarer des colonnes qui sont "nullable".
USE base_demo;
INSERT INTO utilisateurs (email, password) VALUES ("louisdavignon@armyspy.com", "password");
On peut ne pas déclarer l'id dans une requête d'insert, cette colonne est un peu particulière car elle est gérée par la base de données puisqu'en auto-incrément.
Ajouter plusieurs enregistrements
Il est également possible d'ajouter plusieurs enregistrements simultanéments comme illustré ci-après. Bien sur, dans ce cas comme dans la cas d'un ajout d'un seul enregistrement nous ne sommes pas obligés de déclarer toutes les colonnes de la structure de table, mais seulement celles non "nullable".
USE base_demo;
INSERT INTO utilisateurs (nom, prenom, email, password)
VALUES
('Michaud', 'Karlotta', 'karlottamichaud@armyspy.com', 'password'),
('Beaupré', 'Louis', 'louisbeaupre@teleworm.us', 'password'),
(null, null, 'oliverpomerleau@rhyta.com', 'password');
Dans l'exemple ci-dessus, on reprend globalement le requête d'enregistrement d'une seule entrée, à la différence prêt qu'on spécifie des "jeux" de VALUES entre parenthèses et séparés par des virgules.
Utiliser des sous requêtes
Même si l'exmple que nous allons prendre ici ne fait pas vraiment sens dans la mesure ou nous allons travailler avec une seule table, l'exemple a vocation à montrer l'insertion de données dans une table à l'aide des données récupérées dans une autre table à l'aide d'une sous requête.
USE base_demo;
INSERT INTO utilisateurs (nom, prenom, email, password)
SELECT nom, prenom, email, password FROM utilisateurs WHERE id = 1;
Après l'exécution de cette requête et de sa sous requête et dans la mesure ou on a travaillé sur la même table quand on parcourt les données de la table dans phpMyAdmin, on peut noter que nous avons finalement une dernière ligne de données qui contient les mêmes valeurs que celle de la ligne ayant comme id la valeur 1.
Nous venons d'illustrer le C du CRUD, pourquoi ne pas continuer sur notre lancée et voir les requêtes pour lire des données (R du CRUD) ?
Tutos du jour
MySql - Les requêtes de tables
Les requêtes de table sont un élément fondamental de la programmation SQL.
Voir le tuto
Environnement de travail local
Pour faire du Php en local, il est nécessaire d'installer préalablement un environnement d'émulation de serveurs Apache et Mysql
Voir le tuto