Guest User

1-6

a guest
Apr 16th, 2012
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 9.50 KB | None | 0 0
  1. create database cvicim3_to
  2. go
  3.  
  4. use cvicim3_to
  5. go
  6.  
  7. create schema kontrola authorization dbo
  8. go
  9.  
  10. -- Tvorba tabulek
  11. create table kontrola.student
  12. (
  13. id_student int identity(1, 1),
  14. cislo_studenta int primary key not null,
  15. jmeno varchar (30),
  16. prijmeni varchar (50),
  17. adresa varchar (50),
  18. obec varchar (30),
  19. psc numeric (5),
  20. telefon numeric (9)
  21. )
  22. create table kontrola.lektor
  23. (
  24. id_lektora int identity(1, 1),
  25. cislo_lektora int primary key not null,
  26. jmeno varchar (30),
  27. prijmeni varchar (50),
  28. adresa varchar (50),
  29. obec varchar (30),
  30. psc numeric (5),
  31. telefon numeric (9)
  32. )
  33. create table kontrola.kurs
  34. (
  35. id_kursu int identity(1, 1),
  36. cislo_kursu varchar (4) primary key not null,
  37. nazev varchar (50),
  38. popis varchar (200)
  39. )
  40. create table kontrola.predpoklady
  41. (
  42. id_predpokladu int identity(1, 1) primary key,
  43. cislo_kursu varchar (4) foreign key references kontrola.kurs (cislo_kursu),
  44. cislo_predchozi varchar (4)
  45. )
  46. create table kontrola.aprobace
  47. (
  48. id_aprobace int identity(1, 1) primary key,
  49. cislo_lektora int foreign key references kontrola.lektor (cislo_lektora),
  50. cislo_kursu varchar (4) foreign key references kontrola.kurs (cislo_kursu)
  51. )
  52. create table kontrola.terminy
  53. (
  54. id_terminu int identity(1, 1) primary key,
  55. rok varchar (9),
  56. semestr varchar (5),
  57. cislo_kursu varchar (4) foreign key references kontrola.kurs (cislo_kursu),
  58. ucebna varchar (4),
  59. den varchar (5),
  60. cas varchar (5),
  61. cislo_lektora int foreign key references kontrola.lektor (cislo_lektora)
  62. )
  63. create table kontrola.hodnoceni
  64. (
  65. id_hodnoceni int identity(1, 1) primary key,
  66. cislo_studenta int foreign key references kontrola.student (cislo_studenta),
  67. id_terminu int foreign key references kontrola.terminy (id_terminu),
  68. hodnoceni int
  69. )
  70. -- ukonceni tvorby tabulek
  71. -- vlozeni studentu
  72. insert into kontrola.student (cislo_studenta, jmeno, prijmeni, adresa, obec, psc, telefon)
  73. values (4567, 'Helena','Červená','Poříèí 128','Brno','60200','523698741')
  74. insert into kontrola.student (cislo_studenta, jmeno, prijmeni, adresa, obec, psc, telefon)
  75. values (4965, 'Barbora','Studená','U Pergamenky 26','Praha','12000','258963147')
  76. insert into kontrola.student (cislo_studenta, jmeno, prijmeni, adresa, obec, psc, telefon)
  77. values (6874, 'Jan','Čermák','U dvora 569','Jihlava','58698','365214895')
  78. insert into kontrola.student (cislo_studenta, jmeno, prijmeni, adresa, obec, psc, telefon)
  79. values (7096, 'Karel','Holub','U sokolovny 21','Brno','63500','512963478')
  80. insert into kontrola.student (cislo_studenta, jmeno, prijmeni, adresa, obec, psc, telefon)
  81. values (8513, 'Jiøí','Adamec','Grohova 65','Brno','60200','587452369')
  82. -- vlozeni lektoru
  83. insert into kontrola.lektor (cislo_lektora, jmeno, prijmeni, adresa, obec, psc, telefon)
  84. values (25897, 'Václav','Horník','Hlavní třída 1','Jihlava','58601','214563987')
  85. insert into kontrola.lektor (cislo_lektora, jmeno, prijmeni, adresa, obec, psc, telefon)
  86. values (36521, 'Martin','Dvořák','Křenová 54','Brno','62100','569743215')
  87. insert into kontrola.lektor (cislo_lektora, jmeno, prijmeni, adresa, obec, psc, telefon)
  88. values (87421, 'Ladislav','Pálka','Otakara Ševčíka 63','Brno','60200','539715698')
  89. insert into kontrola.lektor (cislo_lektora, jmeno, prijmeni, adresa, obec, psc, telefon)
  90. values (95471, 'Otakar','Možný','Kolejní 5','Brno','61600','411369852')
  91. -- vlozeni kursu
  92. insert into kontrola.kurs (cislo_kursu, nazev, popis)
  93. values ('X100', 'Základy PC','Úvodní kurz informatiky')
  94. insert into kontrola.kurs (cislo_kursu, nazev, popis)
  95. values ('X201', 'Algoritmizace','Základy programování')
  96. insert into kontrola.kurs (cislo_kursu, nazev, popis)
  97. values ('X202', 'Visual Basic','Programovací tecjniky ve VB')
  98. insert into kontrola.kurs (cislo_kursu, nazev, popis)
  99. values ('X301', 'Základy zpracování dat','Struktura dat, techniky ukládání, práce s datovámi soubory')
  100. insert into kontrola.kurs (cislo_kursu, nazev, popis)
  101. values ('X302', 'Datové modelování','Relační datový model, normalizace, E-R diagramy')
  102. insert into kontrola.kurs (cislo_kursu, nazev, popis)
  103. values ('X401', 'Databázové systémy','Základy databází, SQL jazyk')
  104. -- vlozeni predpokladu
  105. insert into kontrola.predpoklady (cislo_kursu, cislo_predchozi)
  106. values ('X201','X100')
  107. insert into kontrola.predpoklady (cislo_kursu, cislo_predchozi)
  108. values ('X202','X201')
  109. insert into kontrola.predpoklady (cislo_kursu, cislo_predchozi)
  110. values ('X302','X301')
  111. insert into kontrola.predpoklady (cislo_kursu, cislo_predchozi)
  112. values ('X401','X302')
  113. -- vlozeni aprobace
  114. insert into kontrola.aprobace (cislo_lektora, cislo_kursu)
  115. values (25897,'X100')
  116. insert into kontrola.aprobace (cislo_lektora, cislo_kursu)
  117. values (36521,'X201')
  118. insert into kontrola.aprobace (cislo_lektora, cislo_kursu)
  119. values (36521,'X202')
  120. insert into kontrola.aprobace (cislo_lektora, cislo_kursu)
  121. values (95471,'X202')
  122. insert into kontrola.aprobace (cislo_lektora, cislo_kursu)
  123. values (95471,'X401')
  124. insert into kontrola.aprobace (cislo_lektora, cislo_kursu)
  125. values (87421,'X301')
  126. insert into kontrola.aprobace (cislo_lektora, cislo_kursu)
  127. values (87421,'X302')
  128. insert into kontrola.aprobace (cislo_lektora, cislo_kursu)
  129. values (87421,'X401')
  130. -- vlozeni terminu
  131. insert into kontrola.terminy (rok, semestr, cislo_kursu, ucebna, den, cas, cislo_lektora)
  132. values ('2006/2007', 'Letní','X100','P384','Po','7-10',25897)
  133. insert into kontrola.terminy (rok, semestr, cislo_kursu, ucebna, den, cas, cislo_lektora)
  134. values ('2006/2007', 'Letní','X201','P164','St','13-15',36521)
  135. insert into kontrola.terminy (rok, semestr, cislo_kursu, ucebna, den, cas, cislo_lektora)
  136. values ('2006/2007', 'Letní','X401','P381','Po,Pá','9-11',87421)
  137. insert into kontrola.terminy (rok, semestr, cislo_kursu, ucebna, den, cas, cislo_lektora)
  138. values ('2007/2008', 'Zimní','X202','P165','St','10-12',95471)
  139. insert into kontrola.terminy (rok, semestr, cislo_kursu, ucebna, den, cas, cislo_lektora)
  140. values ('2007/2008', 'Zimní','X301','P292','St','17-19',87421)
  141. insert into kontrola.terminy (rok, semestr, cislo_kursu, ucebna, den, cas, cislo_lektora)
  142. values ('2007/2008', 'Zimní','X302','P264','Čt','15-17',87421)
  143. -- vlozeni hodnoceni
  144. insert into kontrola.hodnoceni (cislo_studenta, id_terminu, hodnoceni)
  145. values ('4567',1,2)
  146. insert into kontrola.hodnoceni (cislo_studenta, id_terminu, hodnoceni)
  147. values ('4567',4,2)
  148. insert into kontrola.hodnoceni (cislo_studenta, id_terminu, hodnoceni)
  149. values ('4965',3,1)
  150. insert into kontrola.hodnoceni (cislo_studenta, id_terminu, hodnoceni)
  151. values ('6874',2,1)
  152. insert into kontrola.hodnoceni (cislo_studenta, id_terminu, hodnoceni)
  153. values ('6874',6,1)
  154. insert into kontrola.hodnoceni (cislo_studenta, id_terminu, hodnoceni)
  155. values ('7096',3,2)
  156. insert into kontrola.hodnoceni (cislo_studenta, id_terminu, hodnoceni)
  157. values ('7096',5,3)
  158. insert into kontrola.hodnoceni (cislo_studenta, id_terminu, hodnoceni)
  159. values ('7096',6,2)
  160. insert into kontrola.hodnoceni (cislo_studenta, id_terminu, hodnoceni)
  161. values ('8513',3,3)
  162.  
  163.  
  164.  
  165. --2
  166. create table kontrola.byvali_studenti
  167.   (
  168.    id_student int,
  169.    cislo_studenta int primary key not null,
  170.    jmeno varchar (30),
  171.    prijmeni varchar (50),
  172.    adresa varchar (50),
  173.    obec varchar (30),
  174.    psc numeric (5),
  175.    telefon numeric (9),
  176.    datum date
  177.   )
  178.  
  179.    
  180. create trigger smazano on kontrola.student
  181. for delete
  182. as
  183.  begin
  184. insert into kontrola.byvali_studenti (id_student,cislo_studenta,jmeno,prijmeni,adresa,obec,psc,telefon,datum)
  185.  select id_student,cislo_studenta,jmeno,prijmeni,adresa,obec,psc,telefon, GETDATE() from deleted
  186. end
  187.  
  188. --3
  189.  
  190. begin tran TZ1  
  191. delete from kontrola.hodnoceni where cislo_studenta=4567
  192. delete from kontrola.student where cislo_studenta=4567
  193. select * from kontrola.byvali_studenti
  194. select * from kontrola.student
  195. --commit tran TZ1
  196. rollback tran TZ1
  197.  
  198.  
  199. --4
  200. create procedure kurz
  201. @nazev varchar(50)
  202. as
  203. begin
  204. select k.nazev,t.semestr,t.ucebna,t.den,t.cas,p.cislo_predchozi from kontrola.kurs k, kontrola.terminy t,kontrola.predpoklady p
  205. where @nazev=k.nazev and k.cislo_kursu=t.cislo_kursu and k.cislo_kursu=p.cislo_kursu
  206. end
  207.  
  208. execute kurz 'Databázové systémy'
  209.  
  210. --5
  211. create procedure vnorena
  212. @cislo_lektora int
  213. as
  214. begin
  215.   if (@cislo_lektora is  null)
  216.     begin
  217.      print 'Student nebyl z daneho kurzu hodnocen'  
  218.     end
  219.   else
  220.    begin
  221.    select jmeno+' '+prijmeni as 'Jméno učitele',telefon from kontrola.lektor
  222.     where @cislo_lektora=cislo_lektora
  223.    end
  224. end
  225.  
  226. create procedure ucitel
  227. @cislo_studenta int,   --je to navesene na cislo_studenta a ne id_studenta, cislo_studenta je primarni klic, s id_studenta by to bylo o podminku delsi
  228. @cislo_kurzu varchar(4),
  229. @cislo_lektora int output
  230. as
  231. begin
  232.  set @cislo_lektora= (select t.cislo_lektora from kontrola.terminy t, kontrola.hodnoceni h
  233.                         where @cislo_kurzu=t.cislo_kursu and @cislo_studenta=h.cislo_studenta
  234.                         and h.id_terminu=t.id_terminu)
  235. execute vnorena @cislo_lektora
  236. end
  237.  
  238. declare @cislo_lektora int
  239. execute ucitel 4965,'X100',@cislo_lektora output
  240.  
  241. --6
  242. declare Kurzor cursor for
  243.  select s.jmeno,s.prijmeni,t.den,t.ucebna from kontrola.student s,kontrola.terminy t,kontrola.hodnoceni h
  244.  where s.cislo_studenta=h.cislo_studenta and h.id_terminu=t.id_terminu
  245.  declare
  246.    @jmeno varchar(30),
  247.    @prijmeni varchar(30),
  248.    @den varchar(10),
  249.    @ucebna varchar(5)
  250.   open Kurzor
  251.   fetch Kurzor into @jmeno,@prijmeni,@den,@ucebna
  252.    while @@fetch_status=0
  253.     begin
  254.      print @jmeno+' '+@prijmeni+' - '+@den+' - Učebna: '+@ucebna
  255.      fetch Kurzor into @jmeno,@prijmeni,@den,@ucebna
  256.     end
  257.   close Kurzor
  258.   deallocate Kurzor
Advertisement
Add Comment
Please, Sign In to add comment