TP: système de gestion de base de données relationnelle | Exam-Lib
  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice
Welcome to our Education website, plz like our page facebook to support us. Thank You and wish you good navigation

TP: système de gestion de base de données relationnelle

abdelouafiOct 10, 2018

    1. abdelouafi

      abdelouafi Administrator Staff Member

      Messages:
      643
      Likes Received:
      14
      Trophy Points:
      18
      Joined
      Sep 13, 2016
      TP 3 : Mise à jour des données
      Exercice 1 :
      Soit le modèle relationnel suivant :
      upload_2018-10-10_23-48-28.png

      Travail à faire :
      Écrire les requêtes de mise à jour suivantes :
      1. La base est vierge. Réalisez l'insertion d'un jeu de données dans les différentes tables. Les données seront définies par vous-même à votre convenance.

      2. Augmentez de 10% tous les prix des analyses.

      3. Il a été défini un prix plancher de 80 DHs pour toutes les analyses. Mettez à jour la table ANALYSE.

      4. Aujourd'hui, toutes les analyses en cours ont été réalisées. Mettez à jour la base

      5. Le client dont le code est "c1" vient de fournir son numéro de téléphone (0611111111). Mettre à jour la table correspondante.

      6. Suite à un bug informatique, des entrées ont été saisies le 01 février 2007 au lieu du 1er février 2006. Mettez à jour la base.

      7. Afin de préparer la nouvelle campagne, de nouvelles analyses ont été définies. Ces nouvelles analyses sont disponibles dans une table ANALYSECOLYSTEROL dont la structure (champs, types de donnée) est identique à TYPEANALYSE. Mettez à jour la table TYPEANALYSE à partir de la tableANALYSECOLYSTEROL.


      Exercice 2 :
      Soit le modèle relationnel suivant :

      Cinéma (NumCinéma, NomCinéma, RueCinéma, CodePostal)
      Ville (CodePostal, NomVille). Salle (NumSalle, Capacité, NumCinéma).
      Film (NumFilm, Titre, Durée, Producteur).
      Projection (NumFilm, NumSalle, Date, NbreEntrées)


      Donnez les requêtes SQL permettant de réaliser les opérations suivantes :

      1. Introduire des données pour tester.

      2. Afficher le nombre de salles de cinéma par ville (nom ville).

      3. Afficher la capacité totale de chaque cinéma (nom du cinéma).

      4. Afficher le nombre de films projeté le 25/08/2011 par producteur.

      5. Afficher pour chaque film (titre du film) le nombre de projections entre le 20/10/2011 et 25/10/2011.

      6. Afficher pour chaque cinéma (nom du cinéma) le nombre de projections dont le nombre total d’entrées dépasse 150.

      7. Afficher la liste des projections où le nombre d’entrées a dépassé 80% de la capacité de la salle de projection.

      8. Reporter de 3 jours la date de projection des films où le nombre d’entrées n’a pas dépassé 30% de la capacité de la salle de projection.

      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.
       
      Loading...
      Exercice 1:

      Code:
      insert into Client values ('c1','Hamil',43000,'Marrakech',0623133528)
      Insert into Client values('c2','Haur',40000,'Fes',0663233358) Insert into Client values('c3','Belfaqir',40000,'Casa',0622333528) Insert into Client values('c4','Fakach',41000,'Tanger',0625463365)
      
      ------ INSERT into Echantillon values (1,'09/09/2016','c2')
      INSERT into Echantillon values (2,'09/10/2016','c3')
      
      INSERT into Echantillon values (3,'09/11/2016','c4')
      
      -----
      insert into TypeAnalyse values (1,'D1','Glesimie',50)
      
      INSERT into TypeAnalyse values (2,'D2','Anemie',60)
      
      INSERT into TypeAnalyse values (4,'D3','Colysterole',70)
      
      Insert into TypeAnalyse values (3,'D4','Serologie',90)
      -------
      insert into Realiser values (1,2,'09/09/2016')
      
      insert into Realiser values (2,4,'09/11/2016')
      insert into Realiser values (3,1,'11/11/2016')
      insert into Realiser values (4,3,'16/10/2016')
      ---2----
      update TypeAnalyse set PrixTypeAnalse=PrixTypeAnalse+(PrixTypeAnalse*0.1)
      
      ----3----
      update TypeAnalyse set PrixTypeAnalse=80 where PrixTypeAnalse<80
      ----4--- 
      delete from Realiser  set DateRealisation= Cast(getDate()) as "Date"  where DateRealisation is null   
      -----5----
      update Client  set Tel=0611111111  where CodeClient='c1'
      ----6----
      update Echantillon  set DateEntre='01/02/2006' where DateEntre='01/02/2007'
      -----7--------
      insert into  TypeAnalyse select * from ANALYSECOLYSTEROL --------- 

      Exercice 2:

      Code:
      -----Cinéma (NumCinéma, NomCinéma, RueCinéma, CodePostal) ----Ville (CodePostal, NomVille). ----Salle (NumSalle, Capacité, NumCinéma). ----Film (NumFilm, Titre, Durée, Producteur). ----Projection (NumFilm, NumSalle, Date, NbreEntrées)-------- ----1---- insert Into Cineme values(1,'Nom1','Rue1',40000) insert Into Cineme values(2,'Nom2','Rue2',41000) insert Into Cineme values(3,'Nom3','Rue3',43000) -- insert into Ville values(40000,'Fes') insert into Ville values(41000,'casa') insert into Ville values(42000,'tanger') -- insert into Salle values(1,60,1) insert into Salle values(2,80,2) insert into Salle values(3,100,3) -- insert into Film values (1,'Titre1','00:30:00','Producteur1') insert into Film values (2,'Titre2','01:30:00','Producteur2') insert into Film values (3,'Titre3','01:00:00','Producteur3') -- insert into Projection values(1,1,'10/10/2016',30) insert into Projection values(2,2,'10/11/2016',40) insert into Projection values(1,3,'09/10/2016',60) 
      
      -----2----- 
      
      select COUNT(NumCinema),NomCineme from Cineme group by NomCineme
      -----3---- -----
      Afficher la capacité totale de chaque cinéma (nom du cinéma). select SUM(Capacite)as "Capacite",NomCineme from Cineme c inner join Salle s on c.NumCinema=s.NumCineme group by c.NomCineme 
      ----4----- ----
      Afficher le nombre de films projeté le 25/08/2011 par producteur ----Film (NumFilm, Titre, Durée, Producteur). ----Projection (NumFilm, NumSalle, Date, NbreEntrées) select f.Producteur,COUNT(f.NumFilm)as"Nombre de film" from Film f inner join Projection p on f.NumFilm=p.NumFilm where p.Date='25/08/2011' group by f.Producteur
      -----5---- --
      Afficher pour chaque film (titre du film) le nombre de projections entre le 20/10/2011 et 25/10/2011 select f.Titre,COUNT(*) as "Nbr de projection"  from Film f inner join Projection p on p.NumFilm=f.NumFilm where p.Date between '20/26/2016' and '26/26/2016' group by f.Titre
      ----6----- ---
      Afficher pour chaque cinéma (nom du cinéma) le nombre de projections dont le nombre total d’entrées dépasse 150 select c.NomCineme,COUNT(*)as"Nbr de Projection" from Projection p inner join Salle s on p.NumSalle=s.NumSalle inner join Cineme c on c.NumCinema=s.NumCineme group by c.NomCineme having SUM(p.Date)>150
      --7----- ---
      Afficher la liste des projections où le nombre d’entrées a dépassé 80% de la capacité de la salle de projection select p.* from Projection p inner join Salle s on p.NumSalle=s.NumSalle where  p.NbrEntree>=s.Capacite*0.8
      ----8----- ---
      Reporter de 3 jours la date de projection des films où le nombre d’entrées n’a pas dépassé 30% de la capacité de la salle de projection update Projection set Date=DATEADD(day,3,Date) where NumFilm in (select p.NumFilm from Projection p inner join Salle s on p.NumSalle=s.NumSalle where p.NbrEntree<s.Capacite*0.3)
      -----9---- ----
      Supprimer les films qui ne sont pas projetés depuis 3 ans delete  from Projection where NumFilm in(select NumFilm from Projection group by NumFilm having MAX(date)<=CAST(DATEADD(year,-3,GetDate() )as "date") 

Share This Page

Share