Aller au contenu

Insertion de données

La commande INSERT permet d'ajouter des enregistrements à une table dans une base de données.

Syntaxe de base

Méthode simple

INSERT INTO ma_table
VALUES (valeur1, valeur2, valeur3);

Avantages

  • Requête concise.
  • Aucune modification nécessaire si les noms de colonnes changent.

Inconvénients

  • Risque accru d'erreurs si les valeurs ne correspondent pas exactement en nombre et en position aux colonnes de la table.

Méthode précise

INSERT INTO ma_table (colonne1, colonne2, colonne3)
VALUES (valeur1, valeur2, valeur3);

Avantages

  • Plus grande précision dans la spécification des colonnes.
  • Possibilité d'insérer des valeurs sans respecter l'ordre des colonnes ni inclure toutes les colonnes.

Inconvénient

  • Requêtes plus longues à écrire.
  • Nécessite une mise à jour de la requête si le nom d'une colonne est modifié.

Insérer des données seulement dans certaines colonnes

INSERT INTO ma_table (colonne1)
VALUES (valeur1);

Les champs non spécifiés recevront leur valeur par défaut, ou NULL si aucune valeur par défaut n'est définie.

Insérer plusieurs lignes simultanément

INSERT INTO ma_table
VALUES  (valeur_a1, valeur_a2, valeur_a3),
        (valeur_b1, valeur_b2, valeur_b3),
        (valeur_c1, valeur_c2, valeur_c3),
        (valeur_d1, valeur_d2, valeur_d3);
INSERT INTO ma_table (colonne1, colonne2, colonne3)
VALUES  (valeur_a1, valeur_a2, valeur_a3),
        (valeur_b1, valeur_b2, valeur_b3),
        (valeur_c1, valeur_c2, valeur_c3),
        (valeur_d1, valeur_d2, valeur_d3);

Insérer des valeurs provenant d'une autre table

INSERT INTO ma_table (colonne1, colonne2, colonne3)
    SELECT valeur1, valeur2, valeur3
    FROM table_source;

Cette méthode permet l'insertion de données issues de requêtes complexes, y compris avec des jointures et des conditions.

Insérer tout le contenu d'une autre table

INSERT INTO ma_table TABLE table_source

Gestion des colonnes auto-incrément

Les colonnes de type auto-incrément ne doivent pas être incluses dans les requêtes d'insertion, car elles sont automatiquement remplies.

Récupérer la valeur d'une colonne auto-incrément

Après une insertion, récupérez la première valeur auto-incrémentée insérée avec succès :

SELECT last_insert_id();