0% ont trouvé ce document utile (0 vote)
45 vues4 pages

Tp2 PL/SQL With Correction

TP2

Transféré par

hajer6876
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
45 vues4 pages

Tp2 PL/SQL With Correction

TP2

Transféré par

hajer6876
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

GLSI2 Elaboré par

Ingénierie BD
Mme Boutaleb Manel

ISTIC Borj Cedria


TP2 : Procédures et fonctions

Exercice 1:
Créer une procédure PL/SQL qui calcule la moyenne des notes d’un ensemble d’étudiants
stockées dans une table nommée notes (id_etudiant, nom_etudiant, note).

Exercice 2 :
1. Soit la table suivante :
CREATE TABLE FOURNISSEUR (CODE_FOURNISSEUR VARCHAR2(10) PRIMARY KEY,
NOM_FOURNISSEUR VARCHAR2(100), ADRESSE_FOURNISSEUR VARCHAR2(200), TYPE_FOURNISSEUR
VARCHAR2(50));

- Créer une procédure PL/SQL qui permet d’ajouter un nouveau fournisseur.


- En utilisant cette procédure, insérer trois fournisseurs ayant comme code F09, F10
et F11

2. Soit la table suivante :

CREATE TABLE EMBALLAGE ( ID_EMBALLAGE NUMBER PRIMARY KEY, CODE_FOURNISSEUR


VARCHAR2(10) REFERENCES FOURNISSEUR (CODE_FOURNISSEUR), NOM_EMBALLAGE
VARCHAR2(100), QUANTITE NUMBER, DATE_FABRICATION DATE);

-- Insérer les lignes suivantes dans la table EMBALLAGE

INSERT INTO EMBALLAGE (ID_EMBALLAGE, CODE_FOURNISSEUR, NOM_EMBALLAGE,


QUANTITE, DATE_FABRICATION)
VALUES (1, 'F09', 'Emballage 1', 100, TO_DATE('2023-10-15', 'YYYY-MM-DD'));

INSERT INTO EMBALLAGE (ID_EMBALLAGE, CODE_FOURNISSEUR, NOM_EMBALLAGE,


QUANTITE, DATE_FABRICATION)
VALUES (2, 'F09', 'Emballage 2', 50, TO_DATE('2023-10-15', 'YYYY-MM-DD'));

INSERT INTO EMBALLAGE (ID_EMBALLAGE, CODE_FOURNISSEUR, NOM_EMBALLAGE,


QUANTITE, DATE_FABRICATION)
VALUES (3, 'F10', 'Emballage 3', 75, TO_DATE('2023-10-15', 'YYYY-MM-DD'));

1
- Créer une fonction PL/SQL qui permet de retourner le nombre total des emballages
effectués par un fournisseur donné en paramètre (son code).

3. Soit la table suivante :

CREATE TABLE TF_NE ( TYPE_FOURNISSEUR VARCHAR2(50), NOMBRE_EMBALLAGE NUMBER


);

- Créer une procédure PL/SQL qui permet de calculer le total des emballages
effectues par un type fournisseur donné en paramètre, et insérer à chaque fois le
résultat dans la table TF_NE

Exercice 2 : Gestion d'une bibliothèque


Considérons une bibliothèque qui souhaite gérer ses livres, ses emprunteurs et ses emprunts.
Nous allons créer des tables pour stocker ces informations et écrire des procédures PL/SQL
pour effectuer des opérations de gestion.

1. Création de tables : Créez trois tables pour stocker les informations suivantes :
a. Livres (id_livre, titre, auteur, année_publication)
b. Emprunteurs (id_emprunteur, nom, prénom, date_inscription)
c. Emprunts (id_emprunt, id_livre, id_emprunteur, date_emprunt, date_retour)

-- Création de la table "Livres"

CREATE TABLE Livres ( id_livre NUMBER PRIMARY KEY, titre VARCHAR2(100), auteur VARCHAR2(50),
annee_publication NUMBER );

-- Création de la table "Emprunteurs"

CREATE TABLE Emprunteurs ( id_emprunteur NUMBER PRIMARY KEY, nom VARCHAR2(50), prénom
VARCHAR2(50), date_inscription DATE );

-- Création de la table "Emprunts"

CREATE TABLE Emprunts ( id_emprunt NUMBER PRIMARY KEY, id_livre NUMBER REFERENCES
Livres(id_livre), id_emprunteur NUMBER REFERENCES Emprunteurs(id_emprunteur), date_emprunt DATE,
date_retour DATE );

2. Insertion de données
-- Ligne 1

INSERT INTO Livres (id_livre, titre, auteur, annee_publication)

VALUES (1, 'Livre 1', 'Auteur 1', 2000);

2
-- Ligne 2

INSERT INTO Livres (id_livre, titre, auteur, annee_publication)

VALUES (2, 'Livre 2', 'Auteur 2', 2010);

-- Ligne 3

INSERT INTO Livres (id_livre, titre, auteur, annee_publication)

VALUES (3, 'Livre 3', 'Auteur 3', 2020);

-- Ligne 4

INSERT INTO Livres (id_livre, titre, auteur, annee_publication)

VALUES (4, 'Livre 4', 'Auteur 4', 2015);

-- Ligne 1

INSERT INTO Emprunteurs (id_emprunteur, nom, prénom, date_inscription)

VALUES (1, 'Nom1', 'Prénom1', TO_DATE('2023-10-19', 'YYYY-MM-DD'));

-- Ligne 2

INSERT INTO Emprunteurs (id_emprunteur, nom, prénom, date_inscription)

VALUES (2, 'Nom2', 'Prénom2', TO_DATE('2023-10-20', 'YYYY-MM-DD'));

-- Ligne 3

INSERT INTO Emprunteurs (id_emprunteur, nom, prénom, date_inscription)

VALUES (3, 'Nom3', 'Prénom3', TO_DATE('2023-10-21', 'YYYY-MM-DD'));

-- Ligne 4

INSERT INTO Emprunteurs (id_emprunteur, nom, prénom, date_inscription)

VALUES (4, 'Nom4', 'Prénom4', TO_DATE('2023-10-22', 'YYYY-MM-DD'));

-- Ligne 1

INSERT INTO Emprunts (id_emprunt, id_livre, id_emprunteur, date_emprunt, date_retour)

VALUES (1, 1, 1, TO_DATE('2023-10-19', 'YYYY-MM-DD'), TO_DATE('2023-11-19', 'YYYY-MM-DD'));

-- Ligne 2

INSERT INTO Emprunts (id_emprunt, id_livre, id_emprunteur, date_emprunt, date_retour)

VALUES (2, 2, 2, TO_DATE('2023-10-20', 'YYYY-MM-DD'), TO_DATE('2023-11-20', 'YYYY-MM-DD'));

-- Ligne 3

INSERT INTO Emprunts (id_emprunt, id_livre, id_emprunteur, date_emprunt, date_retour)

VALUES (3, 3, 3, TO_DATE('2023-10-21', 'YYYY-MM-DD'), TO_DATE('2023-11-21', 'YYYY-MM-DD'));

-- Ligne 4

INSERT INTO Emprunts (id_emprunt, id_livre, id_emprunteur, date_emprunt, date_retour)

VALUES (4, 4, 4, TO_DATE('2023-10-22', 'YYYY-MM-DD'), TO_DATE('2023-11-22', 'YYYY-MM-DD'));

3
3. Créez une procédure PL/SQL qui prend en entrée le nom d'un emprunteur et affiche
son nom complet (nom et prénom). Utilisez une variable pour stocker le nom complet.
4. Écrivez une procédure PL/SQL qui prend en entrée le titre d'un livre et la nouvelle
année de publication, puis met à jour l'année de publication du livre dans la table des
livres.
5. Écrivez une procédure PL/SQL qui prend en entrée le nom d'un emprunteur et
supprime tous les enregistrements d'emprunts associés à cet emprunteur.

Vous aimerez peut-être aussi