UNIVERSITE ABOU BEKR BELKAID – TLEMCEN
GESTION DE BASES DE DONNÉES
Corrigé Exercice: SQL
Soit la base de données « Approvisionnement » :
Usine (NU, NomU, Ville)
Produit (NP, NomP, Couleur, Poids)
Fournisseur (NF, NomF, Statut, Ville, Tel)
Fournir (NP#, NU#, NF#, Quantite)
Les requêtes SQL de définition et mise à jour de données :
1. Définir le schéma de la base de données avec les contraintes de clés primaires et clés étrangères.
CREATE TABLE Usine……
CREATE TABLE Produit …..
CREATE TABLE Fournisseur …..
CREATE TABLE Fournir ( NP VARCHAR (4) REFERENCES Produit (NP),
NU VARCHAR (4) REFERENCES Usine (NU),
NF VARCHAR (4) REFERENCES Fournisseur (NF),
Quantite NUMBER (6,2),
PRIMARY KEY (NP, NU, NU));
2. Supprimer la table « Fournir » puis la redéfinir.
DROP TABLE Fournir ;
3. Afficher la structure de la table Fournisseur.
DESCRIBE Fournisseur ; Ou DESC Fournisseur ;
4. On a oublié lors de la définition des données le Poids de la table Produit. Ajouter le.
ALTER TABLE Produit ADD Poids NUMBER (5,2) ;
5. Supprimer la colonne Tel de la table Fournisseur, jugé inutile.
ALTER TABLE Fournisseur DROP COLUMN Tel ;
6. Réduire la taille du Statut Fournisseur à 10.
ALTER TABLE Fournisseur MODIFY COLUMN Statut VACHAR (10) ;
7. Pour éviter les confusions entre les 2 tables Usine et Fournisseur, renommer la colonne Ville dans
les 2 tables par VilleU et VilleF. Vérifier les modifications.
ALTER TABLE Usine RENAME COLUMN Ville TO VilleU ;
ALTER TABLE Fournisseur RENAME COLUMN Ville TO VilleF ;
DESC Usine ;
DESC Fournisseur ;
8. Renommer la table « Fournir » par « PUF ».
ALTER TABLE Fournir RENAME TO PUF ;
9. Interdire l’absence d’information pour l’attribut « Quantite ».
ALTER TABLE PUF MODIFY COLUMN Quantite NUMBER (6,2) NOT NULL;
10. Assurer la contrainte qui interdit l’utilisation du même Nom d’Usine par une autre Usine.
ALTER TABLE Usine MODIFY COLUMN NomU VARCHAR (20) UNIQUE ;
11. Attribuer la valeur par défaut pour la Ville d’un Fournisseur à « Tlemcen ».
ALTER TABLE Fournisseur MODIFY COLUMN Ville VARCHAR (20) DEFAULT ‘Tlemcen’ ;
12. Limiter le Poids des Produits à 100 Kg.
ALTER TABLE Produit ADD CONSTRAINT PMax_CI CHECK (Poids < 100) ;
13. Ajouter le Fournisseur (R35, KLC, Statut non renseigné, Alger).
INSERT INTO Fournisseur (NF, NomF, Ville) VALUES (R35, ‘KLC’, ‘Alger’) ;
14. Insérer les 2 Usines (5, SOFIMED, Oran) et (21, SOFAC, Tlemcen), en même temps.
INSERT INTO Usine VALUES (5, ‘SOFIMED’, ‘Oran’),
(21, ‘SOFAC’, ‘Tlemcen’) ;
15. Changer la Ville du Fournisseur numéro 1, il a déménagé à Tlemcen.
UPDATE Fournisseur
SET VilleF = ‘Tlemcen’
WHERE NF = 1 ;
16. Modifier le statut de tous les Fournisseurs d’Alger et de Constantine en ‘Sous-traitant’.
UPDATE Fournisseur
SET Statut = ‘Sous-Traitant’
WHERE Ville = ‘Alger’ OR Ville = ‘Constantine’ ;
17. Initialiser toutes les Quantités fournies à 0.
UPDATE PUF
SET Quantite = 0 ;
18. Supprimer tous les produits de Couleur Noire, dont le Numéro est compris entre 100 et 199.
DELETE FROM Produit
WHERE Couleur = ‘Noir’ AND NP BETWEEN 100 AND 199 ;