La mise à jour de bases de données volumineuses passe utilement par des requêtes : les requêtes suppression (DELETE) et les requêtes insertion (INSERT).
Ces requêtes sont susceptibles d’avoir des effets non désirés sur les données non réversibles en cas d’erreurs de programmation : faire une sauvegarde des données avant toute exécution d’une table avant toute requête DELETE ou INSERT est une sage précaution.
Les requêtes DELETE et INSERT se construisent d’une manière similaire aux requêtes sélection (SELECT).
Requête suppression (DELETE) :
DELETE FROM table WHERE condition1, condition2...;
Pour supprimer tous les enregistrements d’une table, la requête se limite au texte suivant :
DELETE FROM table;
La clause WHERE spécifie les critères des enregistrements à supprimer. Pour plus de détail sur la rédaction de la clause WHERE, se reporter aux requêtes sélection (SELECT).
Exemple : supprimer les écritures comptables datées du 31/12/2018 :
DELETE FROM Ecritures2016 WHERE (Ecritures2016.DatePiece=#12/31/2018#);
Sous ACCESS, avant d’exécuter la requête, cliquer sur l’icône Mode Feuille de données pour visualiser les enregistrements qui seront effacés.
Pour exécuter la requête, cliquer sur l’icône Exécuter (!) :
Un message alerte l’utilisateur sur l’irréversibilité de la suppression des données :
Requête insertion (INSERT) :
La requête insertion permet d’insérer des enregistrements dans une table de données. Ce type de requêtes est initié par une clause INSERT INTO suivi du nom de la table qui accueille les nouveaux enregistrements. Les enregistrements à insérer sont énumérés à l’aide d’une requête sélection (clauses SELECT, FROM et WHERE, cette dernière étant optionnelle).
INSERT INTO tabledestination SELECT * FROM tablesource WHERE condition1, condition2...;
Pour exécuter la requête, cliquer sur l’icône Exécuter.
La requête suivante insère tous les enregistrements de la table “tablesource” dans la table “tabledestination” :
INSERT INTO tabledestination SELECT * FROM tablesource;
L’insertion des données peut être conditionnée au respect de certains critères avec une clause WHERE selon les mêmes modalités qu’avec une requête sélection :
INSERT INTO Ecritures2018 SELECT * FROM Ecritures WHERE (Ecritures.DatePiece=#12/31/2018#);
Dans cet exemple, seules les écritures du 31/12/2018 seront insérées dans la table “Ecritures2018” à partir de la table “Ecritures”.
Approfondir le sujet : Maîtriser le langage de requête SQL / les opérateurs / Analyse de données
