|
1 - Introduction |
|
| |
|
Une base de données évolue sans arrêt : de nouveaux enregistrements sont introduits, d'autres sont archivés, d'autres
sont modifiés, d'autres enfin sont supprimés. Des contrôles, suivis éventuellement de corrections, sont effectués. |
|
|
|
Deux types de requête sont particulièrement utilisés pour ces opérations de maintenance : |
|
|
|
| |
|
la suppression, qui permet de faire disparaître des enregistrements jugés
obsolètes, erronés ou inutiles ; |
|
|
la mise à jour, qui permet de modifier le contenu de certains enregistrements. |
|
|
|
|
Sont supprimés ou modifiés les enregistrements qui répondent à certains critères. Ces
opérations sont généralement effectuées sur une seule table à la fois. Cependant, par le jeu des relations, suppressions et modifications
peuvent se répercuter en cascade dans d'autres tables, si l'option correspondante a été choisie lors de la création de la relation,
après que l'intégrité référentielle eût été requise (Cf. le chapitre 5). |
|
|
|
La suppression est une opération qui s'effectue au niveau de l'enregistrement. La mise à jour intervient souvent à un
niveau plus fin : seuls certains champs, dans certains enregistrements, sont concernés. |
|
|
|
Attention ! Une fois effectuées, suppressions et mises à jour sont irréversibles. Avant d'effectuer une requête
de ce type, il est indispensable d'effectuer une copie des tables concernées, voire de la BDD toute entière. |
|
|
|
Bien entendu, une opération de modification ou de suppression concernant un tout petit nombre d'enregistrements
ne justifie pas la création d'une requête ; il suffit d'intervenir ponctuellement dans la table considérée. Par contre, si le nombre
d'opérations à effectuer croit, la création d'une requête fait gagner du temps et diminuer le risque d'erreurs. |
|
|
|
Comme il est d'usage dans tout ce tutoriel (encore appelé "cours en ligne" ou tutorial), nous utiliserons le
SGBD Access comme support pratique. |
|
|
|
2 - La suppression |
|
| |
|
La requête de suppression opère sur une table. Elle supprime les enregistrements (ou lignes) répondant à un ou
plusieurs critères. Dans la figure ci-dessous, les enregistrements répondant à ces critères sont colorés en rouge ; la requête
les fait disparaitre irrémédiablement. |
|
| U |
V |
W |
X |
Y |
Z |
T |
| 1 |
|
|
|
|
|
|
| 2 |
|
|
|
|
|
|
| 3 |
|
|
|
|
|
|
| 4 |
|
|
|
|
|
|
| 5 |
|
|
|
|
|
|
| 6 |
|
|
|
|
|
|
|
|
|
|
|
|
A titre d'exemple, l'opération de suppression peut être utile dans les cas suivants : |
|
|
|
| |
|
retirer de la BDD d'une entreprise toutes les données économiques relatives à un exercice clos ; |
|
|
retirer de la table des prêts (d'une bibliothèque) toutes les opérations terminées (le livre emprunté a été rendu) ; |
|
|
retirer du fichier journal d'un système informatique tous les enregistrements âgés de plus d'un mois ; |
|
|
retirer de la liste des clients tous ceux qui n'ont rien commandé depuis deux ans ; |
|
|
éliminer d'une table tous les enregistrements incomplets (un champ donné n'a pas été renseigné) ; |
|
|
retirer de la table du stock tous les articles qui se sont mal vendus au cours des douze derniers mois ; |
|
|
etc. |
|
|
|
|
Supposons, à titre d'exemple, que nous voulions éliminer d'une table "Factures" toutes les factures soldées avant le
1er janvier de cette année (2002). Dans la fenêtre "Base de données" nous sélectionnons l'objet "Requêtes", puis nous
double-cliquons sur "Créer une requête en mode Création". Dans la boite "Afficher la table", nous sélectionnons la
table "Factures", nous l'ajoutons et nous fermons. Dans la fenêtre "Microsoft Access", nous cliquons sur l'icône
de la barre d'outils et, dans la liste déroulante qui s'affiche, nous
choisissons "Requête Suppression". Nous introduisons le champ "Date_de_réglement" dans la grille et, sur la ligne
"Critères :", nous écrivons : |
|
|
|
<#01/01/2002# |
|
|
|
l'opérateur < signifiant "antérieur à", et les signes # rappelant que nous opérons sur une date. |
|
|
|
Attention ! Si nous basculons en mode feuille de données en cliquant sur l'icône
, le logiciel affiche la liste des enregistrements qui seront
supprimés, et non l'aspect de la table après suppression comme nous pourrions nous y attendre. |
|
|
|
Si nous exécutons la requête (icône ), tous les
enregistrements antérieurs au 1er janvier 2002 sont éliminés. Si la table "Factures" est ouverte pendant la suppression, le
mot "Supprimé" apparaît dans chaque champ de chaque enregistrement supprimé. Dès que l'on referme la table, les
enregistrements supprimés disparaissent sans laisser de traces. |
|
|
|
L'écriture d'un critère de suppression doit tenir compte du type de données du champ auquel il s'applique. Nous
associerons sous peu à ce chapitre des annexes détaillant les règles d'écriture des critères pour les différents cas. |
|
|
|
3 - La mise à jour |
|
| |
|
Les informations contenues dans une BDD peuvent avoir besoin d'une mise à jour. Ainsi, un taux de TVA peut varier, de
même que le prix de vente des produits et services de l'entreprise, etc. Mais la mise à jour peut être soumise à un ou
plusieurs critères, s'appliquant ou non au champ susceptible d'être modifié. Par exemple, une prime peut être versée à l'ancienneté,
et donc dépendre de la date d'embauche du salarié (laquelle figure dans la table du personnel de l'entreprise). Par conséquent, la
mise à jour s'applique à une table, et concerne soit une colonne complète, soit seulement certains enregistrements de la colonne
(colorés en rose dans la figure ci-dessous). |
|
|
| U |
V |
W |
X |
Y |
Z |
T |
| 1 |
|
|
|
|
|
|
| 2 |
|
|
|
|
|
|
| 3 |
|
|
|
|
|
|
| 4 |
|
|
|
|
|
|
| 5 |
|
|
|
|
|
|
| 6 |
|
|
|
|
|
|
|
|
|
|
L'actualité proche nous fournit un excellent exemple mise à jour simple : lors du passage à l'euro, tous les prix
contenus dans les base de données durent être convertis de francs en euros à l'aide du fameux coefficient 6,55957. Pour traiter ce
cas, créons une table "Produits" contenant trois champs : le code, le nom, et le prix unitaire HT de chaque produit. Les
types de données correspondants sont : NuméroAuto, texte, et numérique (réel, deux décimales, pas de format particulier).
Saisissons quelques enregistrements, et créons une copie de la table ainsi remplie. |
|
|
|
Créons une requête en mode création. Introduisons la table "Produits", cliquons sur l'icône
, et sélectionnons "Requête Mise à jour" dans la liste déroulante.
Introduisons le champ "Prix_unitaire" dans la grille et, sur la ligne "Mise à jour :", saisissons l'expression
représentée dans la figure ci-dessous. Laissons la ligne "Critères :" vide, puisque le passage des francs aux euros concerne tous
les enregistrements de la colonne sans exception. |
|
|
 |
|
|
|
Attention ! si nous passons en mode feuille de données à l'aide de l'icône
, nous constatons que l'opération de mise à jour n'est pas effectuée.
Un bogue de plus à signaler à l'éditeur ! |
|
|
|
Si nous exécutons la requête, nous constatons que tous nos prix ont bien été convertis en euros. Mais prenons garde de
ne pas exécuter la requête une deuxième fois ! |
|
|
|
Cet exemple de requête "mise à jour" est particulièrement simple, parce qu'il s'applique à tous les enregistrements
sans distinction. On peut créer facilement un exemple avec critère, comme le montre la figure ci-dessous. La requête portera à
20,6 % le taux de TVA de 19,6 %, mais ne touchera pas aux autres taux. |
|
|
 |
|