L2 Info : Bases de données
 
◃  Ch. 5 Édition des données avec SQL (DML)  ▹
 

Insertion de nouveaux enregistrements

  • Commande INSERT INTO
  • Syntaxe standard :
    INSERT INTO nom_table VALUES (val1, ...,valn);
    
    INSERT INTO nom_table(col1, ...,coln)
       VALUES (val1, ..., vali, ..., valn);
    
    INSERT INTO nom_table(col1, ...,coln) SELECT ... FROM ...;
    
  • vali peut être au choix :
    • une valeur de même type que la colonne coli ciblée
    • la valeur NULL si la colonne n'est pas obligatoire (définie avec l'option NOT NULL),
    • la valeur DEFAULT Si la colonne est de type SERIAL ou associée à une valeur par défaut (définie avec l'option DEFAULT ou AUTO_INCREMENT)
  • Toutes les colonnes obligatoires de la table (déclarées NOT NULL) et sans valeur par défaut doivent être renseignées lors de l'insertion
  • Syntaxe PostgreSQL et MySQL :
    INSERT INTO nom_table(col1, ...,coln) VALUES
       (val11, ..., val1n),
       (val21, ..., val2n),
       ...
       (valp1, ..., valpn);
  • Syntaxe Oracle :
    INSERT ALL
          INTO nom_table(col1, ...,coln) VALUES (val11, ..., val1n)
          INTO nom_table(col1, ...,coln) VALUES (val21, ..., val2n)
       ...
          INTO nom_table(col1, ...,coln) VALUES (val21, ..., val2n)
       SELECT * FROM dual;
  • Exemples :
    INSERT INTO professeur VALUES (1, 'Amanton', 'Laurent', NULL, NULL, 'MCF');
    
    INSERT INTO professeur (prof_id, prof_nom, prof_prenom, prof_statut)
                VALUES (2, 'Ponty', 'Jean-Luc', 'MCF');
    
    INSERT INTO professeur (prof_id, prof_nom, prof_prenom, prof_statut)
                VALUES (3, 'Jay', 'Véronique', 'MCF'),
                       (4, 'Balev', 'Stefan', 'MCF'),
                       (5, 'Arfi', 'Mustapha', 'MCF'),
                       (6, 'Fournier', 'Dominique', 'MCF') ;