TP 3 : Mise à jour des données - Module : Système de gestion de base de données | 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 3 : Mise à jour des données - Module : Système de gestion de base de données

abdelouafiOct 14, 2018

    1. abdelouafi

      abdelouafi Administrator Staff Member

      Messages:
      815
      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-14_23-21-46.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...

      Merci de partager ce post sur facebook

      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