Advertisement
Guest User

Untitled

a guest
Jan 27th, 2020
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.51 KB | None | 0 0
  1. --Permet de supprimer toutes les tables avant de les recreer (à mettre en commentaire à la première utilisation)
  2.  
  3. drop table LesTickets;
  4. drop table LesDossiers;
  5. drop table LesRepresentations;
  6. drop table LesSpectacles;
  7. drop table LesPlaces;
  8. drop table LesZones;
  9. drop table LesCategories;
  10.  
  11. --creation des tables
  12. create table LesCategories(
  13. nomC varchar(10),
  14. prix number(2),
  15. constraint LesCategories_pk primary key (nomC),
  16. constraint LesCategories_ck check (prix > 0));
  17.  
  18. create table LesZones(
  19. numZ number(1),
  20. nomC varchar(10),
  21. constraint LesZones_pk primary key (numZ),
  22. constraint LesZones_fk foreign key (nomC) references LesCategories(nomC),
  23. constraint LesZones_ck check (numZ > 0));
  24.  
  25. create table LesPlaces(
  26. noPlace number(2),
  27. noRang number(2),
  28. numZ number(1),
  29. constraint LesPlaces_pk primary key (noPlace,noRang),
  30. constraint LesPlaces_fk foreign key (numZ) references LesZones(numZ),
  31. constraint LesPlaces_ck1 check (noPlace > 0),
  32. constraint LesPlaces_ck2 check (noRang > 0),
  33. constraint LesPlaces_ck3 check (numZ > 0));
  34.  
  35. create table LesSpectacles(
  36. numS number(3),
  37. nomS varchar(20),
  38. constraint LesSpectacles_pk primary key (numS),
  39. constraint LesSpectacles_ck check (numS > 0));
  40.  
  41.  
  42. create table LesRepresentations(
  43. numS number(3),
  44. dateRep date,
  45. constraint LesRepresentations_pk primary key (numS,dateRep),
  46. constraint LesRepresentations_fk foreign key (numS) references LesSpectacles(numS),
  47. constraint LesRepresentations_ck check (numS > 0));
  48.  
  49. create table LesDossiers(
  50. noDossier number(3),
  51. montant number(4),
  52. constraint LesDossiers_pk primary key (noDossier),
  53. constraint LesDossiers_ck1 check (noDossier > 0),
  54. constraint LesDossiers_ck2 check (montant > 0));
  55.  
  56. create table LesTickets(
  57. noSerie number(4),
  58. numS number(3),
  59. dateRep date,
  60. noPlace number(2),
  61. noRang number(2),
  62. dateEmission date,
  63. noDossier number(3),
  64. constraint LesTickets_pk primary key (noSerie,numS,dateRep,noPlace,noRang),
  65. constraint LesTickets_fk1 foreign key (numS,dateRep) references LesRepresentations(numS,dateRep)
  66. on delete cascade,
  67. constraint LesTickets_fk2 foreign key (noPlace,noRang) references LesPlaces(noPlace,noRang)
  68. on delete cascade,
  69. constraint LesTickets_fk3 foreign key (noDossier) references LesDossiers(noDossier)
  70. on delete cascade,
  71. constraint LesTickets_ck1 check (dateEMission < dateRep),
  72. constraint LesTickets_ck2 check (noSerie > 0),
  73. constraint LesTickets_ck3 check (numS > 0),
  74. constraint LesTickets_ck4 check (noPlace > 0),
  75. constraint LesTickets_ck5 check (noRang > 0),
  76. constraint LesTickets_ck6 check (noDossier > 0));
  77.  
  78. --remplissage des tables
  79. insert into LesCategories
  80. select NOMC,PRIX
  81. from theatre.LesCategories;
  82.  
  83. insert into LesZones
  84. select NOZONE,NOMC
  85. from theatre.LesZones;
  86.  
  87. insert into LesPlaces
  88. select NOPLACE,NORANG,NOZONE
  89. from theatre.LesSieges;
  90.  
  91. insert into LesSpectacles
  92. select NOSPEC,NOMS
  93. from theatre.LesSpectacles;
  94.  
  95. insert into LesRepresentations
  96. select NOSPEC,DATEREP
  97. from theatre.LesRepresentations;
  98.  
  99. insert into LesDossiers
  100. select NODOSSIER,sum(prix)as MONTANT
  101. from theatre.LesTickets natural join theatre.LesSieges natural join theatre.LesZones natural join theatre.LesCategories
  102. group by NODOSSIER;
  103.  
  104. insert into LesTickets
  105. select NOSERIE,R.NUMS,R.DATEREP,NOPLACE,NORANG,DATEEMISSION,NODOSSIER
  106. from theatre.LesTickets T join LesRepresentations R on (T.NOSPEC = R.NUMS and T.DATEREP = R.DATEREP);
  107. --On exclut les 20 representations qui on ete annulees le 22-FEB-17 pour respecter la contrainte d'integrite
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement