Serie3 - Procedure Stockées - Avec Corrigé

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

Développement digital option WEB FULL STACK

Exercices
Requêtes SQL – Série N° 1

Soit la Base de données Vente :

Créer les requêtes suivantes permettant de :

1. Créer une procédure stockée permettant de sélectionner les clients


d’une ville donnée.
Réponse :
drop procedure if exists sp_Q1;
delimiter //
create procedure sp_Q1(in vl varchar(20))
begin
select * from client
where ville=vl;
end; //

call sp_Q1('fes');

2. Créer une procédure stockée permettant de sélectionner les clients


dont les noms commencent par ‘HA’ donnée en argument.
Réponse :
delimiter //
create procedure sp_Q2(in mot varchar(20))
begin
select * from client
where nom like concat(mot ,"%");
end; //

Formateur : M.QASSI Page 1 sur 4


Développement digital option WEB FULL STACK

call sp_Q2('HA');

3. Créer une procédure stockée permettant d’afficher les clients par


ordre alphabétique selon le nom.
Réponse :
delimiter //
create procedure sp_Q3()
begin
select * from client
order by nom ASC;
end; //

call sp_Q3();

4. Créer une procédure stockée permettant de Sélectionner les


commandes passées entre deux dates.

Réponse :
delimiter //
create procedure sp_Q4(in d1 date, in d2 date)
begin
select * from commande
where dateCmd between d1 and d2;
end; //

call sp_Q4("12/12/12","22/12/12");

5. Créer une procédure stockée permettant de sélectionner les


commandes d'un client donné.

Réponse :
delimiter //
create procedure sp_Q5(in v_nom varchar(20))
begin
select *
from commande cmd inner join client cl
on cmd.codeCl=cl.codeCl
where cl.nomCl=v_nom;
end; //

call sp_Q5("khaldi");

6. Créer une procédure stockée permettant de sélectionner les


commandes des clients d’une ville donnée.

Réponse :
delimiter //

Formateur : M.QASSI Page 2 sur 4


Développement digital option WEB FULL STACK
create procedure sp_Q6(in v_ville varchar(20))
begin
select *
from commande cmd inner join client cl
on cmd.codeCl=cl.codeCl
where cl.nomCl=v_nom;
end; //

call sp_Q5("khaldi");

7. Calculer le nombre de commandes d'un client donné (par son nom).

Réponse :
use vente;

delimiter //
drop procedure if exists sp_Q7;
create procedure sp_Q7(v_nom varchar(20))
begin
select cl.nom,count(cmd.numCmd) as 'Nombre de commandes'
from client cl, commande cmd
where cl.numCl = cmd.numCl and cl.nom = v_nom;
end; //

call sp_Q7("alaoui");

8. Créer une procédure stockée permettant de calculer et d’afficher le


nombre de commandes par ville.

Réponse :
delimiter //
create procedure sp_Q8()
begin
select cl.ville, count(cmd.*) as ‘Nombre de commande’
from client cl inner join commande cmd
on cmd.codeCl=cl.codeCl
group by ville;
end; //

call sp_Q8;

9. Créer une procédure stockée permettant de calculer le montant des


lignes d'une commande. (Afficher les lignes de commande)

Réponse :
delimiter //
drop procedure sp_Q9;
create procedure sp_Q9()
begin

Formateur : M.QASSI Page 3 sur 4


Développement digital option WEB FULL STACK
select lc.numCmd, pr.desgn, pr.pu as "prix unitaire" , lc.qteA as
'quantité achetée', pr.pu*lc.qteA Montant
from lignescommande lc inner join produit pr
on lc.codePr=pr.code;
end; //

call sp_Q9;

10. Créer une procédure stockée permettant calculer le total d’une


commande.

Réponse :
delimiter //
drop procedure if exists sp_Q10;
create procedure sp_Q10(nc int)
begin
select lc.numCmd, cmd.dateCmd, sum(pr.pu*lc.qteA) Total
from commande cmd inner join lignescommande lc
on cmd.numCmd=lc.numCmd inner join produit pr
on lc.codePr=pr.code
where lc.numCmd=nc;
end; //
call sp_Q10(2);

11. Créer une procédure stockée permettant calculer le total pour


chaque commande.

Réponse :
delimiter //
drop procedure if exists sp_Q11;
create procedure sp_Q11()
begin
select lc.numCmd, cmd.dateCmd, sum(pr.pu*lc.qteA) Total
from commande cmd inner join lignescommande lc
on cmd.numCmd=lc.numCmd inner join produit pr
on lc.codePr=pr.code
group by lc.numCmd;
end; //

call sp_Q11();

12. Créer une procédure stockée permettant calculer le total des


totaux des commandes d’un client (Chiffre d’affaire d’un client).
13. Créer une procédure stockée permettant calculer le Chiffre d’affaire
pour chaque client.

Formateur : M.QASSI Page 4 sur 4

Vous aimerez peut-être aussi