Advertisement
Guest User

Untitled

a guest
May 31st, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. CREATE VIEW all_table AS
  3. SELECT * FROM implementation
  4. NATURAL JOIN  disciplines
  5. NATURAL JOIN  groups  
  6. NATURAL JOIN  navantazh  
  7. NATURAL JOIN  specialnist
  8. NATURAL JOIN  themes  
  9. order by id_impl;
  10. --SELECT * FROM all_table;
  11.  
  12.  
  13. CREATE or REPLACE VIEW laboratorn_view AS
  14. SELECT id_impl, name_n, name_g, name_d, name_t, kurs FROM implementation
  15. INNER JOIN groups      on implementation.id_g = groups.id_g
  16. INNER JOIN themes      on implementation.id_t = themes.id_t
  17. INNER JOIN disciplines on implementation.id_d = disciplines.id_d
  18. INNER JOIN navantazh   on implementation.id_n = navantazh.id_n
  19. WHERE navantazh.id_n = 1;
  20.  
  21. --SELECT * FROM laboratorn_view;
  22.  
  23. id_impl name_n  name_g  name_d  name_t  kurs
  24. 1001    Лабораторне заняття   ВНГ-12-1 Будівництво та проектування споруд   Вступне заняття   3
  25. 1005    Лабораторне заняття   ВНГ-12-1 Будівництво та проектування споруд   Вступ до сопромату  3
  26. 1007    Лабораторне заняття   А-13-1 Архітектура нафтових вишок  Архітектура, як мистецтво 2
  27. 1015    Лабораторне заняття   ПБС-14-1 Вступ до фаху    Вступне заняття   1
  28. 1017    Лабораторне заняття   ПБС-14-1 Вступ до фаху    Пожежна система   1
  29. 1022    Лабораторне заняття   ВНГ-11-1 Проектування споруд   Сучасні споруди   4
  30.  
  31. CREATE OR REPLACE VIEW last_view("Назва дисципліни","Назва групи","Назва навантаження","Назва спеціальності","Назва теми","Курс","Дата","Пара")
  32. AS SELECT disciplines.name_d, groups.name_g, navantazh.name_n, specialnist.name_s, themes.name_t,implementation.kurs, implementation.date_s,implementation.n_par
  33. FROM implementation
  34. INNER JOIN specialnist on implementation.id_s = specialnist.id_s
  35. INNER JOIN groups      on implementation.id_g = groups.id_g
  36. INNER JOIN themes      on implementation.id_t = themes.id_t
  37. INNER JOIN disciplines on implementation.id_d = disciplines.id_d
  38. INNER JOIN navantazh   on implementation.id_n = nav;ejantazh.id_n;
  39.  
  40. --SELECT * FROM last_view;
  41.  
  42. CREATE OR REPLACE RULE rule_last_view_INSERT AS ON INSERT TO last_view DO INSTEAD(
  43. INSERT INTO groups(id_g, name_g) VALUES(New.id_g, New.name_g);
  44. INSERT INTO navantazh(id_n, name_n) VALUES(New.id_n, New.name_n);
  45. INSERT INTO specialnist(id_s, name_s) VALUES(New.id_s, New.name_s);
  46. INSERT INTO disciplines(id_d, name_d) VALUES(New.id_d, New.name_d);
  47. INSERT INTO themes(id_t, name_t)          VALUES(New.id_t, New.name_t);
  48. INSERT INTO implementation(id_impl, id_d, id_s, kurs, id_n, date_s, n_par,id_g, id_t, hours)
  49. VALUES(New.id_impl, New.id_d, New.id_s, New.kurs, New.id_n, New.date_s, New.n_par,New.id_g, New.id_t, New.hours)
  50. );
  51.  
  52. CREATE OR REPLACE RULE rule_last_view_UPDATE AS ON UPDATE TO last_view DO INSTEAD(
  53. UPDATE groups SET id_g = New.id_g,name_g = New.name_g WHERE id_g = OLD.id_g;
  54. UPDATE navantazh SET id_n = New.id_n,name_n = New.name_n WHERE id_n = OLD.id_n;
  55. UPDATE specialnist SET id_s = New.id_s,name_s = New.name_s WHERE id_s = OLD.id_s;
  56. UPDATE disciplines SET id_d = New.id_d,name_d = New.name_d WHERE id_d = OLD.id_d;
  57. UPDATE themes SET id_t = New.id_t,name_t = New.name_t WHERE id_t = OLD.id_t;
  58. UPDATE implementation SET id_impl = New.id_impl, id_d = New.id_d, id_s = New.id_s, kurs = New.id_s, id_n = New.id_n, date_s = New.date_s, n_par = New.n_par,id_g = New.id_g, id_t = New.id_t, hours = New.hours WHERE id_impl = Old.id_impl
  59. );
  60.  
  61. CREATE RECURSIVE VIEW nums_1_100 (n) AS
  62.     VALUES (1)
  63. UNION ALL
  64.     SELECT n+1 FROM nums_1_100 WHERE n < 100;
  65. n
  66. 1
  67. 2
  68. 3
  69. 4
  70. 5
  71. 6
  72. 7
  73. 8
  74. 9
  75. 10
  76. 11
  77.  
  78.  
  79. --Lab_view_BD
  80. CREATE VIEW all_table AS
  81. SELECT * FROM implementation
  82. NATURAL JOIN  disciplines
  83. NATURAL JOIN  groups  
  84. NATURAL JOIN  navantazh  
  85. NATURAL JOIN  specialnist
  86. NATURAL JOIN  themes  
  87. order by id_impl;
  88. --SELECT * FROM all_table;
  89.  
  90. CREATE or REPLACE VIEW laboratorn_view AS
  91. SELECT id_impl, name_n, name_g, name_d, name_t, kurs FROM implementation
  92. INNER JOIN groups      on implementation.id_g = groups.id_g
  93. INNER JOIN themes      on implementation.id_t = themes.id_t
  94. INNER JOIN disciplines on implementation.id_d = disciplines.id_d
  95. INNER JOIN navantazh   on implementation.id_n = navantazh.id_n
  96. WHERE navantazh.id_n = 1;
  97. --SELECT * FROM laboratorn_view;
  98.  
  99. CREATE VIEW groups_view AS SELECT groups.id_g, groups.name_g FROM groups;
  100.  
  101. --UPDATE groups_view SET name_g = 'PI-14-1' WHERE id_g = 2;
  102.  
  103. CREATE RULE groups_view_rule AS ON UPDATE TO groups_view DO
  104. INSTEAD UPDATE groups SET name_g = NEW.name_g
  105. WHERE id_g = NEW.id_g
  106. CREATE RULE delete_groups_view AS ON DELETE TO groups_view DO
  107. INSTEAD DELETE FROM groups where name_g = OLD.name_g;
  108. CREATE VIEW groups_view AS SELECT groups.id_g, groups.name_g FROM groups;
  109.  
  110. Висновок: в даній лабораторній роботі було виконано 20 представлень.
  111.  
  112. ------------------------------------------------------------------------------------
  113. CREATE VIEW themes_view AS SELECT * FROM themes;
  114. SELECT * FROM themes;
  115. --скрін
  116. --ПРАВИЛО НА INSERT
  117. CREATE OR REPLACE RULE for_themes_view_insert AS ON INSERT TO themes_view DO INSTEAD
  118. INSERT INTO themes VALUES(NEW.id_t, NEW.name_t);
  119.  
  120. INSERT INTO themes VALUES(13,"New theme");
  121. --скрін
  122. --Правило на UPDATE
  123. CREATE OR REPLACE RULE for_themes_view_update AS ON UPDATE TO themes_view DO INSTEAD
  124. UPDATE  themes SET name_t = NEW.name_t WHERE id_t = NEW.id_t;
  125.  
  126. UPDATE themes SET name_t = "n" WHERE id_t = 1;
  127. --Правило на DELETE
  128. CREATE OR REPLACE RULE for_themes_view_delete AS ON DELETE TO themes_view DO INSTEAD
  129. DELETE FROM  themes  WHERE id_t = OLD.id_t;
  130. --------------------------------------------------------------------------------------
  131. CREATE VIEW first_kurs AS SELECT
  132.  implementation.id_impl,
  133.  disciplines.name_d,
  134.  groups.name_g,
  135.  navantazh.name_n,
  136.  specialnist.name_s,
  137.  themes.name_t,
  138.  implementation.kurs,
  139.  implementation.date_s,
  140.  implementation.n_par
  141. FROM implementation
  142. INNER JOIN specialnist on implementation.id_s = specialnist.id_s
  143. INNER JOIN groups      on implementation.id_g = groups.id_g
  144. INNER JOIN themes      on implementation.id_t = themes.id_t
  145. INNER JOIN disciplines on implementation.id_d = disciplines.id_d
  146. INNER JOIN navantazh   on implementation.id_n = navantazh.id_n
  147. WHERE implementation.kurs = 1;
  148. ;
  149.  
  150. Правило на INSERT
  151. CREATE OR REPLACE RULE for_first_kurs_view_insert AS ON INSERT TO first_kurs DO INSTEAD
  152. INSERT INTO first_kurs VALUES
  153. (NEW.name_d, NEW.name_g,NEW.name_n,NEW.name_s,NEW.name_t,NEW.kurs, NEW.date_s, NEW.n_par);
  154.  
  155.  
  156.  
  157. SELECT * FROM first_kurs
  158.  
  159.  
  160.  
  161.  
  162. 00000000000000000000
  163. CREATE VIEW disciplines_view AS SELECT * FROM disciplines;
  164. SELECT * FROM disciplines;
  165. --скрін
  166. --ПРАВИЛО НА INSERT
  167. CREATE OR REPLACE RULE for_disciplines_view_insert AS ON INSERT TO disciplines_view DO INSTEAD
  168. INSERT INTO disciplines VALUES(NEW.id_d, NEW.name_d);
  169.  
  170. INSERT INTO disciplines VALUES(13,"New theme");
  171. --скрін
  172. --Правило на UPDATE
  173. CREATE OR REPLACE RULE for_disciplines_view_update AS ON UPDATE TO disciplines_view DO INSTEAD
  174. UPDATE  disciplines SET name_d = NEW.name_d WHERE id_d = NEW.id_d;
  175.  
  176. UPDATE disciplines SET name_d = "n" WHERE id_d = 1;
  177. --Правило на DELETE
  178. CREATE OR REPLACE RULE for_disciplines_view_delete AS ON DELETE TO disciplines_view DO INSTEAD
  179. DELETE FROM  disciplines  WHERE id_d = OLD.id_d;
  180. ----------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement