Vous êtes sur la page 1sur 3

Mini Projet AD_BD

Création et manipulation d’une base Oracle


Ajout d’un bloc PL/SQL

Création des tables


Le schéma de votre base de données est le suivant :
 CLIENT (NumCli, Nom, Prenom, DN, Rue, CP, Ville)
 PRODUIT (NumProd, Desig, PU, #NumFour)
 FOURNISSEUR (NumFour, RaisonSoc, Ville)
 COMMANDE (RefCmd, DateC, #NumCli)
 LGCMD (#NumProd, #RefCmd, Qte, TauxTva)
 FACTURE (Ref_facture, Date_facture, Montant_fact, #NumCli)
AVEC : Attribut : Clé primaire
#Attribut : Clé étrangère
1. Créer un utilisateur Gest_magasin/Gestion auquel vous affecter les privilèges
nécessaires
2. Utiliser le langage SQL et l’assistant graphique pour créer le schéma ci-dessus.
Les types des colonnes sont les suivants

Nom de l’attribut Explication du contenu Description


NumCli Numéro d’un Client Nombre
Nom Nom d’un Client Chaîne qui ne dépasse pas 20 caractères
PRENOM Prénom d’un Client Chaîne qui ne dépasse pas 30 caractères
DN Date de naissance Date
Rue Rue Chaîne qui ne dépasse pas 70 caractères
CP Code postal Nombre
NumFour Numéro d’un Fournisseur Nombre
RaisonSoc Raison sociale d’un Chaîne qui ne dépasse pas 60 caractères
NumProd fournisseur
Numéro produit Nombre
Ville Ville Chaine qui ne dépasse pas 30 caractère
Desig Désignation d’un produit Chaîne qui ne dépasse pas 80 caractères
Nombre de :
PU Prix unitaire (en HT)  3 chiffres (au max) avant la virgule
 2 chiffres (au max) après la virgule
RefCmd Référence commande Chaîne qui ne dépasse pas 10 caractères
DateC Date commande Date

NumLgCmd Numéro ligne commande Nombre de 5 chiffres

Qte Quantité commandée Nombre de 2 chiffres


Nombre de 2 chiffres avant et après la
TauxTva Taux tva virgule

1
Ref_facture Référence facture Chaîne qui ne dépasse pas 10 caractères

Date_facture Date de la facture Nombre


Nombre de 2 chiffres avant et après la
Montant_facture Montant total de la facture virgule

Description des tables


Afin de voir si les créations se sont bien passées vous devez vérifier :
1. La structure des tables Oracle que vous avez implantées dans le SGBD avec la commande
SQL> DESC nom_de_table;
Vérifier chacune de vos tables (nom, ordre et type des attributs)
2.

CLIENT
NumCli Nom Prénom DN RUE CP VILLE
1 SALMI SAMI 12-02-1998 RUE N 17 2031 TUNIS
2 IMALLA KAMEL 14-12-2000   2109 TUNIS
3 SKFALLI ALI 14-02-1999 RUE N 238 2100 TUNIS

PRODUIT COMMANDE
NumProd DESIG PU NumFour REFCMD DATEC NUMCLI
10 PRO10 1100 1 BC1 12-01-2020 1
20 PRO20 2045,225 3 BC2 24-01-2020 1
30 PRO30 300,500 1 BC3 03-02-2020 1
40 PRO40 400,750 1 BC4 07-02-2020 3
50 PRO50 7000,300 3

LGCMD
Qte TauxTva NumProd RefCmd
3 10 10 BC1
2 18 20 BC1
4 10 30 BC1
4 18 20 BC2
3 18 40 BC2
2 10 40 BC3
1 16,47 20 BC4
1 18 30 BC4
3 18 40 BC4
5 10 10 BC4

FOURNISSEUR
NumFo RAISONS Ville
ur OC 2
1 SOS Tunis
SALMI
2 SOS Souss
INCONNU e
PL/SQL
1. Afficher le numéro ainsi que le prix TTC de chaque produit fourni par un
fournisseur de Tunis sachant que le TVA = 20,6% et ceci en utilisant un curseur
paramétré.

2. Ecrire un bloc PL/SQL qui permet de parcourir la table client et de créer une
facture pour chaque client sachant que la référence de la facture est de type
FACT_RefClient (par exemple pour le client numéro 3=>FACT3) et qu’un frais de
transport de 7 dt est appliqué sur les factures dont le montant est <300 dt.
NB : Utiliser la fonction CONCAT(var1,…..,varn) pour la concaténation

3. Ajouter la colonne ‘Remise’ et la colonne ‘Montant_a_payer’ dans la table


‘Facture’.
Ecrire un bloc PL/SQL qui permet d’appliquer une remise de 8% sur les factures dont
le montant dépasse 1000 dt

Vous aimerez peut-être aussi