Beruflich Dokumente
Kultur Dokumente
(Cration d'une base de donnes et ses tables, tablissement des relations entre les tables
et saisie des donnes travers des formulaires)
Type de donnes
Texte(20)
Texte(20)
Texte(20)
Texte(20)
Texte(10)
Description
N de la carte d'identit nationale
Nom du client
Prnom du client
Ville du client
Catgorie du client C1, C2 ou C3
Table Commandes:
Nom du champ
Num_cmd
Cin
Date
Type de donnes
Numrique
Texte(20)
Date/Heure
Description
Numro de la commande
Cin : Code client
Date de la commande
Table produits:
Nom du champ
Ref
Desg
Pu
Type de donnes
Texte(20)
Memo
Montaire
Description
Rfrence du produit
Dsignation du produit
Prix unitaire du produit
Table lignes:
Nom du champ
Num_cmd
Ref
q
Type de donnes
Numrique
Texte(20)
Numrique
Description
Numro de la commande
Rfrence du produit
La quantit vendue au client
Page 1
prnom
mohamed
amine
jalil
mostafa
samira
sanaa
hamid
soufiane
ville
casablanca
rabat
agadir
casablanca
fes
casablanca
casablnca
rabat
catgorie
C1
C1
C3
C2
C3
C2
C1
C2
Page 2
Table commandes :
Numro de
Table produits :
Rfrence du
PRD01
PRD02
PRD03
PRD04
PRD05
cin
1 A100
2 A100
3 A100
4 B200
5 B200
6 B200
7 C300
8 C300
9 D400
10 E500
11 F600
12 F600
13 G700
14 H800
date
Dsignation du
Claviers
Ecrans
Souris
haut-parleurs
imprimantes
Prix unitaire
01/01/04
01/02/04
01/03/04
15/04/04
15/05/04
15/06/04
10/07/04
25/09/04
10/10/04
25/10/04
11/11/04
12/12/04
15/12/04
25/12/04
Table lignes :
Numro de commande
Rfrence du
1 PRD01
1 PRD02
2 PRD02
2 PRD03
3 PRD04
4 PRD04
5 PRD04
6 PRD05
7 PRD05
8 PRD01
9 PRD01
10 PRD01
11 PRD02
11 PRD04
12 PRD03
12 PRD05
13 PRD05
14 PRD03
250
700
100
100
1200
Quantit
10
2
5
20
30
15
20
10
20
5
5
1
3
2
25
10
5
6
Page 3
des clients.
QBE :
Rsultat :
SQL :
SELECT nom, prenom
FROM clients;
2- Afficher le numro, le nom, le prnom et la ville de chaque client. Avec le nom et le
prnom dans une seule colonne et le rsultat tri par ordre croissant sur le nom et prnom.
QBE :
Page 4
SQL :
SELECT cin, [nom] & " " & [prenom] as [Nom et prnom], ville
FROM clients
ORDER BY [nom] & " " & [prenom] ASC;
3- Afficher les clients de la ville Casablanca.
QBE :
SQL :
SELECT cin, nom, ville
FROM clients
WHERE ville="casablanca";
SQL :
SELECT num_cmd, ref, q
FROM lignes
WHERE q>=25;
Page 5
5- Afficher toutes les lignes de commandes dont la rfrence du produit est PRD03 et dont la
quantit est suprieure ou gale 20.
Page 6
QBE
SQL :
SELECT num_cmd, ref, q
FROM lignes
WHERE (ref="PRD03") AND (q>=20);
6- Afficher toutes les lignes de commandes dont la rfrence du produit est PRD03 ou dont
la quantit est suprieure 20.
QBE :
SQL :
SELECT num_cmd, ref, q
FROM lignes
WHERE (ref="PRD03") OR (q>=20);
7- Afficher toutes les lignes de commandes dont la rfrence du produit est PRD03 et dont la
quantit est suprieure 20, ou alors le numro de commande >5
QBE :
Page 7
SQL :
SELECT num_cmd, ref, q
FROM lignes
WHERE ((ref="PRD03") AND (q>=20))or (num_cmd>5);
8- Afficher les commandes dont le numro est compris entre 3 et 10.
QBE : faon1
QBE : faon2
QBE : faon3
Page 8
SQL:
Manire1:
SELECT num_cmd, date
FROM commandes
where (num_cmd>=3) AND (num_cmd<=10);
Manire2:
SELECT num_cmd, date
FROM commandes
where num_cmd between 3 AND 10;
9- Afficher les clients de la ville Casablanca et rabat.
QBE : Manire1
QBE : Manire2
Page 9
QBE : Manire3
SQL :
Manire1:
SELECT cin, nom, ville
FROM clients
WHERE (ville="casablanca") OR (ville="rabat");
Manire2:
SELECT cin, nom, ville
FROM clients
WHERE ville in ("casablanca","rabat");
10- Afficher les clients dont les noms commencent par A.
QBE :
SQL :
SELECT cin, nom, ville
FROM clients
WHERE nom like "A*";
11- Afficher les clients dont les noms ne commencent pas par A.
QBE :
Page 10
SQL :
SELECT cin, nom, ville
FROM clients
WHERE nom not like "A*";
12- Afficher la liste trie par le nom (dcroisant) des clients de la ville Casa ou Casablanca.
QBE :
SQL :
SELECT cin, nom, ville
FROM clients
WHERE ville like "casa*"
ORDER BY nom DESC;
13- Afficher le numro, le nom, le prnom et la ville des clients dont le nom commence par
S , le prnom contient la lettre M et la ville est casa ou rabat :
QBE :
SQL :
SELECT cin, nom, ville
CHARANI ETTAIBI professeur universitaire la FSJESM
Page 11
FROM clients
WHERE ((nom like "s*") and (prenom like "*m*")) and ((ville like "casa*") or
(ville="rabat"))
14- Afficher le numro, le nom et la ville des clients dont le nom ne commence pas par S
et la ville est Casa, Rabat, Mohammedia ou Fs :
QBE :
SQL :
SELECT cin, nom, ville
FROM clients
WHERE (nom not like "s*")
ville="mohammedia" or ville="Fes"))
ville="rabat" or
15- Afficher le numro, le nom et la ville des clients de casa, rabat et Fs:
Dont le nom :
Ne commence pas par S pour les clients de casa.
Commence par A pour les clients de rabat.
Qui commence par A et se termine par e pour les clients de Fes.
QBE :
SQL :
SELECT cin, nom, ville
CHARANI ETTAIBI professeur universitaire la FSJESM
Page 12
FROM clients
WHERE ((nom not like "s*") and (ville like"casa*"))
or
((nom like "A*")and (ville="rabat"))
or
((nom like "A*e") and (ville="Fes"))
SQL :
SELECT num_cmd, date
FROM commandes
WHERE date>=#01/15/2008#;
17- Afficher le numro et la date des commandes qui sont ralises entre les dates :
10/01/2008 et 15/06/2008.
QBE :
Page 13
FROM commandes
WHERE date between #01/10/2008#)AND #/06/15/2008#;
18- Afficher le numro et la date des commandes faites au cours de lanne 2008(utiliser
la fonction anne (date))
QBE :
SQL :
SELECT num_cmd, Date, Year([date]) AS Anne
FROM commandes
WHERE Year([date])=2008;
19- Afficher le numro et la date des commandes qui sont ralises avant le 15 mai au
cours de lanne 2008.
QBE :
SQL:
SELECT num_cmd, Date, Year([date]) AS Anne
FROM commandes
WHERE (date<=#05/15/2008#) AND
(Year([date])=2008);
20- Afficher le numro et la date des commandes faites au cours de lanne 2008 dans
les mois de Mars, mai ou juin (utiliser la fonction mois (date))
QBE :
Page 14
In(3 ;5 ;6)
Page 15
SQL :
SELECT num_cmd, Date, Year([date]) AS anne, Day([date]) AS jour
FROM commandes
WHERE (Year([date])=2008) AND (Day([date])=1);
21b- Afficher le numro et la date des commandes faites au dernier jour de chaque
mois au cours de lanne 2008(utiliser la fonction jour (date))
QBE :
SQL :
SELECT num_cmd, Date, Day([date]) AS jour, Month([date]) AS mois, Year([date]) AS
anne
FROM commandes
WHERE ((Day([date])=29) AND ((Month([date]))=2) AND
(Year([date])=2008))
OR
((Day([date])=30) AND (Month([date]) In (4,6,9,11)) AND
(Year([date])=2008))
OR
((Day([date])=31) AND (Month([date]) In (1,3,5,7,8,10,12))
AND (Year([date])=2008));
22- Afficher le numro et la date des commandes faites dans le mois courant (utiliser la
fonction mois (date ())) (N.B. Date () renvoie la date systme)
Page 16
SQL :
23- Afficher le numro, la date et la dure des commandes en nombre danne (aaaa),
trimestre (t), mois (m), semaine(e), jour (j), heure (h), minutes (n) et secondes(s)
Utiliser la fonction DiffDate("format";[Date];Date())
Exemple : Si le format est aaaa alors la fonction renvoie le nombre dannes
SQL :
SELECT num_cmd, Date, DateDiff("yyyy",[date],Date()) AS dure
FROM commandes;
Page 17
Page 18
SQL :
SELECT cin, nom, ville
FROM clients
WHERE ville=[villex];
2-Afficher les commandes dont la quantit est infrieur ou gale une valeur spcifier
par lutilisateur.
QBE :
SQL :
SELECT num_cmd, ref,q
FROM lignes
WHERE q<=[qunatitex ];
3- Afficher les commandes qui sont ralises dans une priode dterminer par
lutilisateur.
Page 19
SQL :
SELECT num_cmd, date
FROM commandes
WHERE date between [date1] and [date2];
SQL :
Manire1:
SELECT clients.cin, clients.nom, clients.ville, commandes.num_cmd, commandes.Date
FROM clients INNER JOIN commandes ON clients.cin = commandes.cin
WHERE (clients.ville="casablanca") AND (commandes.Date<#1/1/2009#);
Manire2:
SELECT x.cin, x.nom, x.ville, y.num_cmd, y.Date
FROM clients as x, commandes as y
WHERE (x.cin = y.cin) and (x.ville="casablanca") AND (y.Date<#1/1/2009#);
2-Afficher le cin et le nom et la ville des clients de catgorie C1 qui ont ralis des
commandes dont la quantit dpasse 20.
QBE :
SQL :
Manire1:
SELECT clients.cin, clients.nom, clients.ville, clients.catg, commandes.num_cmd,
lignes.q
CHARANI ETTAIBI professeur universitaire la FSJESM
Page 20
QBE :
SQL :
Manire1:
SELECT clients.cin, clients.nom, clients.ville, commandes.num_cmd, lignes.ref,
produits.pu
FROM produits INNER JOIN ((clients INNER JOIN commandes ON clients.cin =
commandes.cin) INNER JOIN lignes ON commandes.num_cmd = lignes.num_cmd) ON
produits.ref = lignes.ref
WHERE (clients.ville="casablanca") AND (produits.pu>240);
Manire2:
SELECT x.cin, x.nom, x.ville, y.num_cmd, z.ref, w.pu
FROM clients as x,commandes as y, lignes as z, produits as w
WHERE (x.cin=y.cin)
and (y.num_cmd=z.num_cmd)
and (w.ref=z.ref)
(x.ville="casablanca") AND (w.pu>240);
and
Page 21
Moyenne
Max
Min
Expression : formule gnrale
O : aucune opration
var , ecartType, dernier et premier
Exemples :
1- Afficher le nombre total des clients :
QBE :
SQL :
SELECT count(cin) as effectif_Global_clients
FROM Clients;
2- Afficher le nombre de clients par ville :
QBE :
SQL :
SELECT clients.ville, Count(clients.cin) AS Nombre_clients
FROM clients
GROUP BY clients.ville;
3- Afficher la quantit totale, la quantit moyenne, la quantit maximale et la
quantit minimale de chaque commande.
QBE :
SQL :
CHARANI ETTAIBI professeur universitaire la FSJESM
Page 22
SELECT lignes.num_cmd,
Sum(lignes.q) AS Total_Qte,
Avg(lignes.q) AS Moyenne_Qte,
Min(lignes.q) AS Qte_maximale,
Max(lignes.q) AS Qte_minimale
FROM lignes
GROUP BY lignes.num_cmd;
4- Afficher la quantit moyenne, la quantit maximale et la quantit minimale de
chaque commande dans les 25 jours avant la date daujourdhui.
QBE :
SQL :
Manire1:
SELECT commandes.num_cmd, commandes.Date, Sum(lignes.q) AS Total_Qte,
Avg(lignes.q) AS Moyenne_Qte
FROM commandes INNER JOIN lignes ON commandes.num_cmd =
lignes.num_cmd
GROUP BY commandes.num_cmd, commandes.Date
HAVING (((commandes.Date)>=Date()-25));
Manire2:
SELECT commandes.num_cmd, commandes.Date, Sum(lignes.q) AS Total_Qte,
Avg(lignes.q) AS Moyenne_Qte
FROM commandes INNER JOIN lignes ON commandes.num_cmd =
lignes.num_cmd
WHERE DateDiff("d",[date],Date())<=25
GROUP BY commandes.num_cmd, commandes.Date;
5- Pour chaque commande, afficher le numro, la date, le montant hors taxe HT, la
TVA et le montant TTC avec taux de TVA fix 20%.
Page 23
QBE :
SQL :
SELECT commandes.num_cmd, commandes.Date, Sum([q]*[pu]) AS HT,
Sum([q]*[pu]*0.2) AS TVA, Sum([q]*[pu]*1.2) AS TTC
FROM produits INNER JOIN (commandes INNER JOIN lignes ON
commandes.num_cmd = lignes.num_cmd) ON produits.ref = lignes.ref
GROUP BY commandes.num_cmd, commandes.Date;
Page 24
Page 25
SQL :
TRANSFORM Sum(lignes.q) AS SommeDeq--->opration (Valeur)
Chaque dsignation dun produit doit tre affiche dans une seule colonne et
chaque ville doit tre place dans une seule ligne :
Etapes :
1. Crer une nouvelle requte en introduisant
Commandes , Lignes commandes et produits.
les
tables : Clients ,
QBE :Manire1
Page 26
QBE :Manire2
Page 27
SQL :
TRANSFORM Sum(lignes.q) AS SommeDeq --->opration (Valeur)
lignes.ref
GROUP BY Format([date],"mmmm"), Month([date])
ORDER BY Month([date])
SQL :
TRANSFORM Sum(lignes.q) AS SommeDeq
Page 28
lignes.ref
WHERE (Month([date]) Between 1 And 6) AND (Year([date])=2008)
PIVOT produits.desg;
SQL :
UPDATE produits
SET ttva = 19
WHERE pu>=400;
Page 29
UPDATE produits
SET produits.ttva = 19
WHERE produits.pu>=400));
2- Augmentez de 1 dh les prix unitaires des produits dont le taux de TVA est 19%.
QBE :
SQL :
UPDATE produits
SET produits.pu = [pu]+1
WHERE produits.ttva=19;
3- Supprimer les clients de la ville safi.
QBE :
SQL :
DELETE clients.ville
FROM clients
WHERE clients.ville="safi";
Page 30
Page 31