Académique Documents
Professionnel Documents
Culture Documents
Exercice 1
²²²²²²²
Ecrire le script de création de ce schéma relationnel avec les règles de gestion suivantes :
- Les clés primaires.
- Quantité a une valeur strictement positive.
Exercice 2
Soit le modèle relationnel suivant relatif à la gestion des notes annuelles d'une promotion d'étudiants :
ETUDIANT(NEtudiant int, Nom varchar(30),Prenom varchar(30))
MATIERE(CodeMat int , LibelleMat varchar(30), CoeffMat int)
EVALUER(NEtudiant int, CodeMat int, DateE date, Note float,)
Exercice 3
Voilà le schéma de la base de données :
1
Correction
4. Modifier les colonnes Nom pour qu'elle prenne la valeur 'Anonyme' par défaut.
5. Créer la table Echantillon en précisant la clé primaire qui commence de 10 et s'incrémente
automatiquement de 1, codeclient est la clé étrangère vers la table Client.
6. Créer la table Typeanalyse en précisant de clé primaire.
7. Ajouter une contrainte ck_prixTypeAnalyse qui impose de saisir un prixTypeAnalyse dans la
table Typeanalyse qui doit être entre 100 et 1000.
8. Créer la table Realiser en précisant que le couple (codeEchantillon,refTypeAnalyse) est une
clé primaire, en même temps, codeEchantillon est une clé étrangère vers la table Echantillon
et refTypeAnalyse est clé étrangère vers la table TypeAnalyse.
9. Supprimer la colonne rue de la table Client.
Exercice 4
Soit le schéma relationnel suivant :
Exercice 5
Soit le schéma relationnel suivant :
2
Correction
Créer les tables ci-dessus en précisant les clés primaires et les clés étrangères (Code_Module
et Code_Filière sont générés automatiquement par le système)
Exercice 6
Soit le modèle relationnel suivant :
CLIENT (noclient int, nom varchar(30),prenom varchar(30),tel varchar(10), adresse
varchar(50),codepostal varchar(5))
3
Correction
N.B : Cette requête utilise des jointures pour relier les données des tables INSCRIPTION, CLIENT,
VOYAGE et CIRCUIT. Le résultat sera une table qui comprend le nom du client, le numéro de voyage,
la date d'inscription, la date de voyage, le prix du voyage, la destination et la durée du voyage pour
chaque inscription.
5. Afficher pour chaque voyage (novoyage) le nombre de places libres restantes.
N.B : Cette requête produira un résultat qui affiche pour chaque voyage son numéro (novoyage) et le
nombre de places libres restantes (places_libres), en soustrayant le nombre d'inscriptions pour ce
voyage de la capacité maximale de voyage.
Indication : Utiliser une requête SQL qui joint les tables INSCRIPTION, VOYAGE et CIRCUIT et
utilise une fonction agrégée pour compter le nombre d'inscriptions pour chaque voyage.
6. Afficher pour chaque client (nom du client) le montant total qu’il a payé pour tous les
voyages auxquels il a participé.
N.B : Cette requête joint les tables INSCRIPTION, CLIENT et VOYAGE pour obtenir les
informations nécessaires. Elle utilise l'instruction GROUP BY pour regrouper les données par nom
de client, et la fonction SUM() pour calculer le total payé pour chaque client. Enfin, elle utilise
l'instruction ORDER BY pour trier les résultats par montant total décroissant.
7. Diminuer le prix de 10% et augmenter le nombre maximal de place de 20% pour les voyages
dont le nombre de participants est égal au nombre maximal de places.
N.B : Vous pouvez utiliser une requête UPDATE pour réaliser cette tâche. Vous devrez d'abord
trouver les voyages qui ont un nombre de participants égal au nombre maximal de places, puis mettre
à jour le prix et le nombre maximal de places en conséquence.
8. Supprimer les clients qui ne sont pas inscrit dans un voyage depuis 3 ans.
N.B : Cette requête utilise le sous-requête EXISTS pour vérifier si un client est inscrit dans un
voyage depuis moins de 3 ans. Si un client n'est pas inscrit dans un voyage depuis 3 ans, la condition
NOT EXISTS retourne TRUE et le client est supprimé.
Exercice 7
Soit le modèle relationnel suivant :
Ville(CodePostal ,NomVille varchar(30))
4
Correction
N.B : Cette requête utilise des jointures pour lier les informations des tables Ville, Cinema et Salle, et
ensuite utilise la fonction COUNT pour compter le nombre de salles de cinéma par ville. Le résultat
est groupé par ville et le nom de la ville et le nombre de salles sont affichés dans le résultat.
5. Afficher la capacité totale de chaque cinéma (nom du cinéma).
6. Afficher le nombre de films projeté le 25/08/2011 par producteur.
7. Afficher pour chaque film (titre du film) le nombre de projections entre le 20/10/2011 et
25/10/2011.
8. Afficher pour chaque cinéma (nom du cinéma) le nombre de projections dont le nombre total
d’entrées dépasse 150.
9. Supprimer les films qui ne sont pas projetés depuis 3 ans.
10. Supprimer les cinémas qui contiennent au moins une salle non utilisée depuis 10 mois.
N.B : La requête ci-dessus utilise une jointure entre les tables Cinema et Salle. La jointure gauche
LEFT JOIN est utilisée pour obtenir les dernières projections pour chaque salle. Ensuite, la clause
WHERE est utilisée pour filtrer les cinémas qui contiennent au moins une salle non utilisée depuis 10
mois en comparant la date de la dernière projection avec la date actuelle. Finalement, la clause
DELETE est utilisée pour supprimer les cinémas qui remplissent cette condition.
Exercice 8
Soit le schéma relationnel suivant :
Créez toutes les tables avec les contraintes d’intégrité PK et FK, et ajouter un enregistrement
par table.
1. Ajouter une contraint strictement positif (>) pour Montant.
2. Modifier la valeur Null des Montants par la valeur 0
3. Modifier les villes des Clients en minuscule
4. Augmenter le solde de tous les clients habitant “Rabat” de “0,5%”
5. Afficher la Liste des clients dont le nom se termine par E et le quatrième caractère est un A.
6. Afficher la Liste des agences ayant des emprunts-clients.
7. Afficher la liste des clients ayant un emprunt à “Casa”
8. Afficher la liste des clients ayant un compte et un emprunt à “Casa”
9. Afficher la liste des clients ayant un emprunt à la ville où ils habitent.
10. Afficher la liste des clients ayant un compte et emprunt dans la même agence
11. Afficher l'emprunt moyenne des clients dans chaque agence
12. Afficher le totale emprunté par client
13. Afficher Le client qui a le moins des totaux emprunts
14. Afficher les clients ayant un compte dans toutes les agences de “Rabat”.
5
Correction
9. En utilisant l’utilisateur user15 créer une nouvelle table T3, puis afficher tous les champs de cette
table après son remplissage.