Pour enregistrer des données dans une table (comme des élèves, des livres ou des produits), tu dois les insérer (insert). C’est justement à ça que sert la commande SQL INSERT. Dans ce cours, tu vas apprendre comment fonctionne cette commande, comment l’écrire correctement, et comment éviter les erreurs les plus courantes. C’est une compétence de base essentielle pour travailler avec des bases de données.
À la fin de cette leçon, tu seras capable de :
INSERTINSERT simple et un INSERT multipleINSERT ?Une requête INSERT sert à ajouter de nouvelles lignes (ou enregistrements) dans une table d’une base de données.
Imagine une table Eleves :
Elle est vide au départ. Pour y mettre des données, on va utiliser INSERT.
💡 On n’utilise pas
INSERTpour modifier ou supprimer des données déjà présentes. Pour ça, on utiliseUPDATEouDELETE.
Voici la forme générale d’une requête INSERT :
INSERT INTO nom_table (colonne1, colonne2, ...)
VALUES (valeur1, valeur2, ...);
Chaque valeur correspond à une colonne, dans l’ordre donné.
Prenons cette table Eleves :
CREATE TABLE Eleves (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(50),
age INT,
classe VARCHAR(10)
);
On veut ajouter un élève : Jean Dupont, 15 ans, en 4B.
INSERT INTO Eleves (nom, age, classe)
VALUES ('Jean Dupont', 15, '4B');
✅ Le champ id n’est pas mentionné car il est auto-incrémenté : MySQL s’en occupe tout seul.
| Élément | Explication |
|---|---|
'Jean Dupont' |
Les chaînes de caractères doivent être entre guillemets simples ' |
15 |
Les nombres n’ont pas de guillemets |
'4B' |
Une classe est une chaîne de caractères : on met des guillemets |
Pour insérer plusieurs élèves en une seule fois :
INSERT INTO Eleves (nom, age, classe)
VALUES
('Alice Martin', 14, '3A'),
('Tom Leroy', 16, '5C'),
('Sofia Van Damme', 15, '4B');
💡 Avantage : c’est plus rapide que faire 3 INSERT séparés.
Si la colonne a une valeur par défaut ou autorise les valeurs NULL, ce n’est pas un problème.
Exemple :
INSERT INTO Eleves (nom, age)
VALUES ('Laura Dubois', 16);
Ici, classe sera mise à NULL.
⚠️ Mais si classe est définie comme NOT NULL, cette requête va échouer.
INSERT ajoute une ou plusieurs lignes dans une table.'guillemets simples'.AUTO_INCREMENT comme id peuvent être ignorées.VALUES.")INSERT sur une base de test avant de l’appliquer en productionVoici une table Livres :
CREATE TABLE Livres (
id INT AUTO_INCREMENT PRIMARY KEY,
titre VARCHAR(100),
auteur VARCHAR(50),
annee INT
);
Question : écris une requête INSERT qui ajoute ce livre :
Titre : Le Petit Prince Auteur : Antoine de Saint-Exupéry Année : 1943
Tu peux aussi essayer d’ajouter deux autres livres en une seule commande.