Cours - Bases de Données - Ch6 Manipulation D'une Base de Données - Bac SI (2015-2016) MR Mohamed TRABELSI

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 8

Professeur : Mohamed TRABELSI

Chapitre 6

Manipulation d'une base de données


Durée : 8 Heures
Type : Théorique / Pratique
I - Manipulation des données en mode assisté
1. Mise à jour des données
T.A.F :
• Ouvrir la BD Relation.mdb
• Compléter le schéma relationnel de la base.
a. Insertion d'une ligne
Ouvrir la table Clients et rajouter un client dont le Code est "FBF08".
Fermer la table Clients.
b. Modification d'une ligne
Modifier le numéro de téléphone du client "FBF08".
c. Suppression d'une ligne
Supprimer le client "FBF08" : clic droit / supprimer l'enregistrement.
Valider la suppression.
2. Recherche de données : Les requêtes
a. Création d'une requête
• Sélectionner l'onglet Requête dans la fenêtre BD Access.
• Créer une requête en mode création.

• Insérer les tables nécessaires pour cette requête :


• Paramétrer la grille d'interrogation.
• Choix des colonnes à afficher dans une requête : Placer le champ dans une colonne
de la grille d'interrogation. * signifie tous les champs.

• Visualisation du résultat d'une requête :

• Enregistrement d'une requête.


• Les critères de filtres : Texte, numérique, date.
Exemples : ville = "London", pu > 20 ou date commande >= #02/01/97#

http://web-tic.net 1/8
CH 6: Manipulation d’une BD Professeur : Mohamed TRABELSI

R1 : Donner toutes les informations des clients de la ville de "London" triées selon le
nom de leur société dans l'ordre croissant.

• La définition des clés de tri.

R2 : Donner les n° commande, n° client et société expédition pour les commandes


passées entre le 02/01/97 et le 02/01/99 des clients de l'Allemagne.

• La combinaison de critères sur une même ligne.

http://web-tic.net 2/8
CH 6: Manipulation d’une BD Professeur : Mohamed TRABELSI

R3 : Donner les n° produits, nom produit, n° fournisseur, n° catégorie, Description


catégorie pour les produits de catégorie 4 ou 2 et dont le Prix unitaire >20

• La combinaison de critères sur plusieurs lignes (OU).

• Les requêtes paramétrées : Rendre le champ N° catégorie paramétrable.


Dans critères il faut écrire : [Donner le numéro de catégorie :].

• Les formules

• Les champs calculés

• Import / export

http://web-tic.net 3/8
CH 6: Manipulation d’une BD Professeur : Mohamed TRABELSI

II - Manipulation des données en mode commande


1. Mise à jour des données
a. Insertion de ligne
- Insérer dans la table « produits » l'article suivant (tous les champs dans l'ordre) :
N° produit Nom produit N° fournisseur Catégorie Quantité Prix unitaire Abandonné

78 Biscuits 12 5 10 1 non

INSERT INTO produits VALUES (78, Biscuits, 12, 5, 10, 1, non);

- Insérer dans la table commandes l'enregistrement suivant :


N° commande Client Date commande Date livraison Sté expédition Fret

14002 FOLKO 17/04/1999

INSERT INTO commandes (N° commande, date commande, client) VALUES


(14002, 17/04/1999, FOLKO);

b. La modification d'une ligne


- Les prix unitaires de tous les produits de catégorie 4 ont augmentés de 2 €.
UPDATE produits
SET pu = pu + 2
WHERE catégorie = 4;

- Mettre à jour le client VICTE comme suit :


Nom contact = Marc Leclair, Titre contact = Directeur commercial. Effacer le contenu
du champ pays.
UPDATE clients
SET nom_contact = ' Marc Leclair', titre_contact = 'Directeur commercial', pays = null
WHERE N° client = 'VICTE';

c. Suppression d'une ligne


- Supprimer de la table «produits» tous les produits de catégorie 9.
DELETE FROM produits
WHERE catégorie = 9;

- Supprimer tous les clients :


DELETE FROM clients.

http://web-tic.net 4/8
CH 6: Manipulation d’une BD Professeur : Mohamed TRABELSI

2. Recherche de données : Les requêtes


a. Introduction
Une requête est une opération de recherche de données à partir d'une ou de plusieurs
tables. Cette recherche peut concerner :
• Certaines colonnes d'une table : une projection.
• Certaines lignes d'une table : une sélection.
• Deux tables en relation : une jointure.
Une requête peut être réalisée en combinant ces trois actions.

b. Requête Projection
R1 : Afficher les trois premières colonnes de la table clients.
SELECT N_client 'Numéro client', Société 'Nom de la société', Nom_contact
'Nom du contact'
FROM clients ;

Les alias : Ce sont les noms de colonnes de la table résultat.

c. Requête Sélection
R2 : Donner toutes les informations des clients de la ville de "London" triées selon le
nom société dans l'ordre croissant.
SELECT *
FROM clients
WHERE ville = 'london'
Order by société ASC;

• ORDER BY sert à trier la table résultat dans un ordre croissant ou décroissant (ASC,
DESC).
• Les critères : Se sont des expressions logiques utilisant les opérateurs suivants :
1) =, <, >, !=, <=, >=
2) BETWEEN
3) IN
4) IS NULL, IS NOT NULL
5) LIKE
6) AND, OR, NOT

http://web-tic.net 5/8
CH 6: Manipulation d’une BD Professeur : Mohamed TRABELSI

R3 : Afficher la liste des produits de catégorie 2, 4, 6 et 8 et dont le nom commence


par 'C' ou ont comme deuxième caractère 'o'.
SELECT *
FROM produits
WHERE N_catégorie IN (2, 4, 6, 8)
AND Nom_produit LIKE 'C%' OR Nom_produit LIKE '_o%'
;

a. Requête jointure (Recherche à partir de plusieurs tables)


R4 : Donner les numéros de commandes, numéros client et société d'expédition
pour les commandes passées entre le 02/01/97 et le 02/01/99 des clients de
l'Allemagne.
SELECT N_commande, C.N_client, Société_expédition
FROM clients L, Commandes C
WHERE Date_commande >= '1/2/1997' AND Date_commande <= '1/2/1999'
AND Pays ='Germany'
AND L.N_client = C.N_client ;

• C est l'alias de la table commandes.


R5 : Préparer la liste des commandes (n° commande, n° client) ayant bénéficiées d'une
remise.
SELECT DISTINCT commandes.n_commande, commandes.n_client,
FROM commandes, détails_commandes
WHERE détails_commandes.remise IS NOT NULL
AND commandes.N_commande = détails_commande.N_commande ;

• DISTINCT permet d'éliminer les redondances au niveau des enregistrements


résultats d'une requête.

http://web-tic.net 6/8
CH 6: Manipulation d’une BD Professeur : Mohamed TRABELSI

R6 : Donner les n° produits, nom produit, nom catégorie, pour les produits de catégorie 4
ou 2 et dont le Prix_unitaire est entre 20 et 50.
SELECT N_produit, nom_produit, catégorie
FROM produits, catégories
WHERE produits.N_catégorie = 2 OR produits.N_catégorie = 4
AND Prix_unitaire BETWEEN 20 AND 50
AND produits.N_catégorie = catégories.N_catégorie;

b. Requête de calculs
Le langage SQL prévoit des fonctions agrégats qui nous permettent de faire du calcul au
niveau des requêtes.
• COUNT : Permet de compter le nombre de lignes résultats obtenues par la commande
SELECT.
R7 : Afficher le nombre de société d'expédition aux quelles la société fait appel.
SELECT COUNT (*)
FROM expéditeurs ;

• SUM : Permet de faire la somme des valeurs d'une colonne dont le type de données est
numérique.
R8 : Calculer la valeur de la quantité totale en stocke des produits de catégorie 2.
SELECT SUM (nbre_unités_stock)
FROM produits
WHERE catégorie = 2 ;

• MIN : Minimum
• MAX : Maximum
• AVG : Moyenne
R9 : Déterminer la valeur minimum, maximum et la moyenne des prix unitaires des
produits non abandonnés.
SELECT MIN (Prix_unitaire) as 'minimum PU', MAX (Prix_unitaire) as
'maximum PU', AVG (Prix_unitaire) as 'La moyenne PU'
FROM produits
WHERE produit_abonné = ‘non’;

http://web-tic.net 7/8
CH 6: Manipulation d’une BD Professeur : Mohamed TRABELSI

R10 : Donner pour chaque catégorie inférieure à 6, le nombre de produits dont le prix
unitaire est inférieur ou égal à 20 €.
SELECT N_categorie, Count (*)
FROM produits
WHERE prix_unitaire <= 20
GROUP By N_categorie
HAVING N_categorie < 6;

R11 : Afficher les détails commande avec le total facturé par ligne.
SELECT Prix_unitaire * Quantité AS ‘Total’
FROM details_commandes;

http://web-tic.net 8/8

Vous aimerez peut-être aussi