INSERT INTO – Ajouter des lignes
Bonne lecture et bon apprentissage !
Junior TSAFACK – 08/08/2026
⏱️ Temps de lecture estimé : 6 minutes
L’insertion de données dans une table s’effectue à l’aide de la commande INSERT INTO. Cette commande permet au choix d’inclure une seule ligne à la base existante ou plusieurs lignes d’un coup.
Syntaxe
Section titled “Syntaxe”Insertion d’une ligne en spécifiant toutes les colonnes
Section titled “Insertion d’une ligne en spécifiant toutes les colonnes”La syntaxe pour remplir une ligne avec cette méthode est la suivante :
INSERT INTO tableVALUES ('valeur1', 'valeur2', ...);Cette syntaxe possède les avantages et inconvénients suivants :
- Oblige à remplir toutes les données, tout en respectant l’ordre des colonnes.
- Limitation des fautes de frappe : Il n’y a pas le nom de colonne. Par ailleurs, les colonnes peuvent être renommées sans avoir à changer la requête.
- Ordre strict : L’ordre des colonnes doit rester identique, sinon certaines valeurs risquent d’être complétées dans la mauvaise colonne.
Insertion d’une ligne en spécifiant seulement les colonnes souhaitées
Section titled “Insertion d’une ligne en spécifiant seulement les colonnes souhaitées”Cette deuxième solution est très similaire, excepté qu’il faut indiquer le nom des colonnes avant VALUES. La syntaxe est la suivante :
INSERT INTO table (nom_colonne_1, nom_colonne_2, ...)VALUES ('valeur1', 'valeur2', ...);Bon à savoir : Il est possible de ne pas renseigner toutes les colonnes. De plus, l’ordre des colonnes n’est pas important du moment que les valeurs correspondent.
Insertion d’une seule ligne
Section titled “Insertion d’une seule ligne”Exemple 1 : Insertion en spécifiant toutes les colonnes
Section titled “Exemple 1 : Insertion en spécifiant toutes les colonnes”Imaginons une table « client » avec les colonnes suivantes : id, prenom, nom, ville, age.
INSERT INTO clientVALUES (1, 'Rébecca', 'Armand', 'Saint-Didier-des-Bois', 24);Résultat dans la table :
| id | prenom | nom | ville | age |
|---|---|---|---|---|
| 1 | Rébecca | Armand | Saint-Didier-des-Bois | 24 |
Exemple 2 : Insertion en spécifiant les colonnes souhaitées
Section titled “Exemple 2 : Insertion en spécifiant les colonnes souhaitées”INSERT INTO client (prenom, nom, age, ville)VALUES ('Aimée', 'Hebert', 36, 'Marigny-le-Châtel');Résultat dans la table :
| id | prenom | nom | ville | age |
|---|---|---|---|---|
| 1 | Rébecca | Armand | Saint-Didier-des-Bois | 24 |
| 2 | Aimée | Hebert | Marigny-le-Châtel | 36 |
Exemple 3 : Insertion partielle (certaines colonnes omises)
Section titled “Exemple 3 : Insertion partielle (certaines colonnes omises)”Si la colonne age est optionnelle (peut être NULL), on peut omettre certaines colonnes :
INSERT INTO client (prenom, nom, ville)VALUES ('Marielle', 'Ribeiro', 'Maillères');Résultat :
| id | prenom | nom | ville | age |
|---|---|---|---|---|
| 1 | Rébecca | Armand | Saint-Didier-des-Bois | 24 |
| 2 | Aimée | Hebert | Marigny-le-Châtel | 36 |
| 3 | Marielle | Ribeiro | Maillères | NULL |
Bon à savoir : Lorsque le champ à remplir est de type
VARCHARouTEXT, il faut indiquer le texte entre guillemets simples. En revanche, lorsque la colonne est un numérique tel queINTouBIGINT, il n’y a pas besoin d’utiliser de guillemets, il suffit juste d’indiquer le nombre.
Insertion de plusieurs lignes à la fois
Section titled “Insertion de plusieurs lignes à la fois”Il est possible d’ajouter plusieurs lignes à un tableau avec une seule requête. Pour ce faire, il convient d’utiliser la syntaxe suivante :
INSERT INTO client (prenom, nom, ville, age)VALUES ('Rébecca', 'Armand', 'Saint-Didier-des-Bois', 24), ('Aimée', 'Hebert', 'Marigny-le-Châtel', 36), ('Marielle', 'Ribeiro', 'Maillères', 27), ('Hilaire', 'Savary', 'Conie-Molitard', 58);Résultat :
| id | prenom | nom | ville | age |
|---|---|---|---|---|
| 1 | Rébecca | Armand | Saint-Didier-des-Bois | 24 |
| 2 | Aimée | Hebert | Marigny-le-Châtel | 36 |
| 3 | Marielle | Ribeiro | Maillères | 27 |
| 4 | Hilaire | Savary | Conie-Molitard | 58 |
Bon à savoir : La syntaxe avec plusieurs lignes est prise en charge par la plupart des SGBD modernes (MySQL, PostgreSQL, SQLite, SQL Server). Si votre SGBD ne la supporte pas, vous devrez effectuer plusieurs requêtes
INSERTséparées.
Utiliser INSERT avec SELECT
Section titled “Utiliser INSERT avec SELECT”Il est possible d’insérer les résultats d’une requête SELECT dans une table :
INSERT INTO client_paris (prenom, nom, ville, age)SELECT prenom, nom, ville, ageFROM clientWHERE ville = 'Paris';Cette requête insère dans la table client_paris tous les clients qui habitent à Paris. Les deux tables doivent avoir des structures compatibles.
Insertion avec AUTO_INCREMENT
Section titled “Insertion avec AUTO_INCREMENT”Si votre table possède une colonne id avec AUTO_INCREMENT (ou SERIAL), vous pouvez omettre cette colonne dans l’insertion. Le SGBD attribuera automatiquement une nouvelle valeur :
INSERT INTO client (prenom, nom, ville, age)VALUES ('Julie', 'Martineau', 'Lyon', 29);Résultat : la colonne id sera automatiquement remplie avec la prochaine valeur disponible.
Bonnes pratiques
Section titled “Bonnes pratiques”- Spécifiez toujours les colonnes : Même si vous insérez toutes les colonnes, il est préférable de les lister explicitement. Cela rend la requête plus robuste aux modifications de la structure de la table.
- Guillemets simples : Utilisez des guillemets simples pour les chaînes de caractères (
'valeur'), et pas de guillemets pour les nombres. - Échappez les caractères spéciaux : Si vos données contiennent des guillemets simples, utilisez
''(double guillemet simple) pour les échapper. Exemple :'L''appartement'. - Vérifiez les contraintes : Assurez-vous que les données insérées respectent les contraintes (clé primaire unique,
NOT NULL, clé étrangère, etc.) pour éviter les erreurs. - Tests : Testez avec des données limitées avant d’insérer de gros volumes de données en production.
Gestion des erreurs courantes
Section titled “Gestion des erreurs courantes”| Erreur | Cause probable | Solution |
|---|---|---|
| Duplicate entry | Violation de clé primaire ou unique | Vérifiez que l’identifiant n’existe pas déjà |
| Column count doesn’t match | Nombre de colonnes différent du nombre de valeurs | Vérifiez le nombre de colonnes dans INSERT INTO |
| Cannot be NULL | Valeur NULL dans une colonne NOT NULL |
Fournissez une valeur pour cette colonne |
| Foreign key constraint | Référence vers une clé étrangère inexistante | Vérifiez que la clé étrangère existe dans la table référencée |
Prochain chapitre
Section titled “Prochain chapitre”Vous savez désormais comment ajouter des lignes avec INSERT INTO. Mais que faire si vous souhaitez mettre à jour une ligne déjà existante, ou bien l’insérer si elle n’existe pas encore ?
👉 Chapitre 21 : ON DUPLICATE KEY UPDATE – INSERT ou UPDATE (MySQL)
Bonne continuation !
Junior TSAFACK – 08/08/2026