Rajen

Untitled

Apr 24th, 2012
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 13.44 KB | None | 0 0
  1. create database TEMPUS
  2. go
  3.  
  4. use TEMPUS
  5. go
  6.  
  7. create schema tmp authorization dbo -- myslim ze tu vubec nemsi byt tp=tempus
  8. go
  9.  
  10. create table tmp.sazba
  11. (
  12. id_sazba int identity(1,1) primary key,
  13. nazev_pozice varchar (100),
  14. vyse_sazby int
  15. )
  16.  
  17. go
  18. create table tmp.majetek
  19. (
  20. id_majetek int identity(1,1) primary key,
  21. nazev varchar (50),
  22. cena int
  23. )
  24.  
  25. go
  26. create table tmp.riziko
  27. (
  28. id_riziko int identity(1,1) primary key,
  29. nazev varchar (50),
  30. popis varchar (200)
  31. )
  32.  
  33. go
  34. create table tmp.WP
  35. (
  36. id_wp int identity(1,1) primary key,
  37. popis varchar (200),
  38. doba_realizace varchar (50)
  39. )
  40.  
  41. go
  42. create table tmp.riziko_WP
  43. (id_riziko int,
  44. id_wp int,
  45. foreign key (id_riziko) references tmp.riziko (id_riziko),
  46. foreign key (id_wp) references tmp.WP (id_wp),
  47. constraint pk_riziko_wp primary key (id_riziko, id_wp)
  48. )
  49.  
  50. go
  51. create table tmp.cestovne
  52. (
  53. id_cestovne int identity(1,1) primary key,
  54. pocet_osob int,
  55. naklady int
  56. )
  57.  
  58. go
  59. create table tmp.zdroj
  60. (
  61. id_zdroj int identity(1,1) primary key,
  62. id_cestovne int,
  63. id_majetek int,
  64. foreign key(id_cestovne) references tmp.cestovne (id_cestovne),
  65. foreign key(id_majetek) references tmp.majetek (id_majetek)
  66. )
  67.  
  68. go
  69. create table tmp.aktivita
  70. (
  71. id_aktivita int identity(1,1) primary key,
  72. popis varchar (200),
  73. id_zdroj int,
  74. foreign key(id_zdroj) references tmp.zdroj (id_zdroj)
  75. )
  76.  
  77. go
  78. create table tmp.aktivita_na_WP
  79. (
  80. id_wp int,
  81. id_aktivita int,
  82. foreign key(id_wp) references tmp.WP (id_wp),
  83. foreign key(id_aktivita) references tmp.aktivita (id_aktivita),
  84. constraint pk_aktivita_na_WP primary key (id_wp, id_aktivita)
  85. )
  86.  
  87. go
  88. create table tmp.EU_zeme
  89. (
  90. id_EU_zeme int identity(1,1) primary key
  91. )
  92.  
  93. go
  94. create table tmp.nonEU_zeme
  95. (
  96. id_nonEU_zeme int identity(1,1) primary key
  97. )
  98.  
  99. go
  100. create table tmp.zeme
  101. (
  102. id_zeme int identity(1,1) primary key,
  103. nazev_zeme varchar (100),
  104. skratka_zeme varchar (80),
  105. EU bit,
  106. id_EU_zeme int foreign key references tmp.EU_zeme (id_EU_zeme),
  107. id_nonEU_zeme int foreign key references tmp.nonEU_zeme (id_nonEU_zeme)
  108. )
  109.  
  110. go
  111. create table tmp.cesta
  112. (
  113. predchazejici_cesta varchar (200),
  114. pocet_dni int,
  115. id_cestovne int,
  116. id_zeme int,
  117. foreign key(id_cestovne) references tmp.cestovne (id_cestovne),
  118. foreign key(id_zeme) references tmp.zeme (id_zeme),
  119. constraint pk_cesta primary key (id_cestovne, id_zeme)
  120. )
  121.  
  122. go
  123. create table tmp.univerzita
  124. (
  125. id_univerzity int identity(1,1) primary key,
  126. nazev_univerzity varchar (100),
  127. id_zeme int,
  128. foreign key(id_zeme) references tmp.zeme (id_zeme)
  129. )
  130.  
  131. go
  132. create table tmp.fakulta
  133. (
  134. id_fakulty int identity(1,1) primary key,
  135. nazev_fakulty varchar (100),
  136. id_univerzity int,
  137. foreign key(id_univerzity) references tmp.univerzita (id_univerzity)
  138. )
  139.  
  140. go
  141. create table tmp.resitel
  142. (
  143. id_resitele int identity(1,1) primary key,
  144. jemno varchar (50),
  145. prijmeni varchar (50),
  146. id_fakulty int foreign key references tmp.fakulta (id_fakulty)
  147. )
  148.  
  149. go
  150. create table tmp.projekt
  151. (
  152. id_projektu int identity(1,1),
  153. nazev_projektu varchar(50),
  154. cil varchar(100),
  155. popis varchar(200),
  156. datum date,
  157. primary key (id_projektu)
  158. )
  159.  
  160. go
  161. create table tmp.prac_skupina
  162. (
  163. id_prac_skupiny int identity(1,1),
  164. nazev varchar(100),
  165. primary key (id_prac_skupiny),
  166. id_resitele int foreign key references tmp.resitel (id_resitele)
  167. )
  168.  
  169. go
  170. create table tmp.osoba
  171. (
  172. id_osoba int identity(1,1) primary key,
  173. jmeno varchar (50),
  174. prijmeni varchar (50),
  175. id_fakulty int foreign key references tmp.fakulta (id_fakulty)
  176. )
  177.  
  178. go
  179. create table tmp.osoba_na_aktivite
  180. (
  181. id_osoba int, -- id_osoba int foreign key references tmp.osoba (id_osoba),
  182. id_zdroj int, -- id_zdroj int foreign key references tmp.zdroj (id_zdroj),
  183. id_sazba int, -- id_sazba int foreign key references tmp.sazba (id_sazba)
  184. kapacita int,
  185. foreign key(id_osoba) references tmp.osoba (id_osoba),
  186. foreign key(id_zdroj) references tmp.zdroj (id_zdroj),
  187. foreign key(id_sazba) references tmp.sazba (id_sazba),
  188. constraint pk_osoba_na_aktivite primary key (id_osoba, id_zdroj, id_sazba)
  189. )
  190.  
  191. go
  192. create table tmp.osoba_na_prac_skupinu
  193. (
  194. id_prac_skupiny int,
  195. id_osoba int ,
  196. foreign key(id_prac_skupiny) references tmp.prac_skupina (id_prac_skupiny), --id_prac_skupiny int foreign key references tmp.prac_skupina (id_prac_skupiny),
  197. foreign key(id_osoba) references tmp.osoba (id_osoba),
  198. constraint pk_osoba_na_prac_skupinu primary key (id_prac_skupiny, id_osoba) --id_osoba int foreign key references tmp.osoba (id_osoba),
  199. )
  200.  
  201. go
  202. create table wp_na_projektu
  203. (
  204. id_projektu int,
  205. id_wp int,
  206. foreign key(id_projektu) references tmp.projekt (id_projektu), --id_projektu int foreign key references tmp.projekt (id_projektu),
  207. foreign key(id_wp) references tmp.WP (id_wp),
  208. constraint pk_wp_na_projektu primary key (id_projektu, id_wp) --id_wp int foreign key references tmp.WP (id_wp),
  209. )
  210.  
  211. ------------------------------------ naplnění daty ----------------------------------------------
  212.  
  213.  
  214. go
  215. insert into tmp.sazba ( nazev_pozice, vyse_sazby)
  216. values ( 'manager', '150')
  217. insert into tmp.sazba ( nazev_pozice, vyse_sazby)
  218. values ( 'technik', '130')
  219. insert into tmp.sazba ( nazev_pozice, vyse_sazby)
  220. values ( 'administrace', '75')
  221.  
  222. go
  223. insert into tmp.majetek ( nazev, cena)
  224. values ( 'stůl', '80')
  225. insert into tmp.majetek ( nazev, cena)
  226. values ( 'židel', '50')
  227. insert into tmp.majetek ( nazev, cena)
  228. values ( 'koberec', '200')
  229. insert into tmp.majetek ( nazev, cena)
  230. values ( 'lampička', '40')
  231.  
  232. go
  233. insert into tmp.riziko ( nazev, popis)
  234. values ( 'nevčastné dokončení wp', 'projekt bude ukončen')
  235. insert into tmp.riziko ( nazev, popis)
  236. values ( 'dokončení ale špatné odevzdání', 'není možné projekt vyhodnotit')
  237.  
  238. go
  239. insert into tmp.WP ( popis, doba_realizace)
  240. values ( 'květinové děti', '2 měsíce')
  241. insert into tmp.WP ( popis, doba_realizace)
  242. values ( 'šikaná ve škole', 'týden')
  243. insert into tmp.WP ( popis, doba_realizace)
  244. values ( 'rasismus v Evropě', '3 měsíce')
  245.  
  246.  
  247. go
  248. insert into tmp.cestovne ( pocet_osob, naklady)
  249. values ( '2', '300')
  250. insert into tmp.cestovne ( pocet_osob, naklady)
  251. values ( '4', '500')
  252. insert into tmp.cestovne ( pocet_osob, naklady)
  253. values ( '1', '100')
  254. insert into tmp.cestovne ( pocet_osob, naklady)
  255. values ( '50', '2000')
  256.  
  257. go
  258. insert into tmp.zdroj ( id_cestovne, id_majetek)
  259. values ( 2, 3)
  260.  
  261.  
  262. go
  263. insert into tmp.aktivita ( popis, id_zdroj)
  264. values ('kreslení krtečka a veverky', 1)
  265. insert into tmp.aktivita ( popis, id_zdroj)
  266. values ('tvorba ručního papíru', 1)
  267. insert into tmp.aktivita ( popis, id_zdroj)
  268. values ('dělaní masek k dyvadelní hře', 1)
  269.  
  270. go
  271. insert into tmp.zeme ( nazev_zeme, skratka_zeme, EU) --, id_EU_zeme, id_nonEU_zeme)
  272. values ('Česká Republika', 'ČR', '1')--, 1 , 0)
  273. insert into tmp.zeme ( nazev_zeme, skratka_zeme, EU) --, id_EU_zeme, id_nonEU_zeme)
  274. values ('Německo', 'D', '1')--, 1 , 0)
  275. insert into tmp.zeme ( nazev_zeme, skratka_zeme, EU) --, id_EU_zeme, id_nonEU_zeme)
  276. values ('Švícarsko', 'SW', '0')--,  1 , 0)
  277. insert into tmp.zeme ( nazev_zeme, skratka_zeme, EU) --, id_EU_zeme, id_nonEU_zeme)
  278. values ('Amerika', 'USA', '0')--, 0 , 1)
  279.  
  280. go
  281. insert into tmp.cesta ( predchazejici_cesta, pocet_dni, id_cestovne, id_zeme)
  282. values ('Do Německa', 5, 1, 7)
  283. insert into tmp.cesta ( predchazejici_cesta, pocet_dni, id_cestovne, id_zeme)
  284. values ('Do Švícarsko', 10, 2, 8)
  285. insert into tmp.cesta ( predchazejici_cesta, pocet_dni, id_cestovne, id_zeme)
  286. values ('Do České Republiky', 50, 3, 6)
  287. insert into tmp.cesta ( predchazejici_cesta, pocet_dni, id_cestovne, id_zeme)
  288. values ('Do USA', 20 , 4, 9)
  289.  
  290. go
  291. insert into tmp.univerzita ( nazev_univerzity, id_zeme)
  292. values ('Vysoké učení technické', 6)
  293. insert into tmp.univerzita ( nazev_univerzity, id_zeme)
  294. values ('Masarikova univerzita', 10)
  295. insert into tmp.univerzita ( nazev_univerzity, id_zeme)
  296. values ('Univerzita Tomáše Bati', 14)
  297. insert into tmp.univerzita ( nazev_univerzity, id_zeme)
  298. values ('Hochevan university', 7)
  299.  
  300. go
  301. insert into tmp.fakulta ( nazev_fakulty, id_univerzity)
  302. values ('Teleinformatika', 53)
  303. insert into tmp.fakulta ( nazev_fakulty, id_univerzity)
  304. values ('Tělovýchova', 55)
  305. insert into tmp.fakulta ( nazev_fakulty, id_univerzity)
  306. values ('Bezpečnostní systémy', 56)
  307. insert into tmp.fakulta ( nazev_fakulty, id_univerzity)
  308. values ('Consuldecor', 57)
  309.  
  310. go
  311. insert into tmp.resitel ( jemno, prijmeni, id_fakulty)
  312. values ('Pepa', 'Hájek', 53)
  313. insert into tmp.resitel ( jemno, prijmeni, id_fakulty)
  314. values ('Matěj', 'Hladký', 54)
  315. insert into tmp.resitel ( jemno, prijmeni, id_fakulty)
  316. values ('Kuba', 'Rodny', 55)
  317. insert into tmp.resitel ( jemno, prijmeni, id_fakulty)
  318. values ('Švarc', 'Hagen', 56)
  319.  
  320. go
  321. insert into tmp.projekt ( nazev_projektu, cil, popis, datum)
  322. values ('hogofogo', 'zjistit jak na sebe vzájemně púsobí částice hogo fogo', 'nemluvte', '11.3.2011')
  323. insert into tmp.projekt ( nazev_projektu, cil, popis, datum)
  324. values ('kockopec', 'ziskejte novy druh','pomoci mutace', '7.3.2000')
  325. insert into tmp.projekt ( nazev_projektu, cil, popis, datum)
  326. values ('příliv, odliv', 'ověřit působení měsice na moře', 'sledujte a zapisujte působení měsíce na moře', '8.7.2005')  
  327.  
  328. go
  329. insert into tmp.prac_skupina ( nazev, id_resitele)
  330. values ('Hvězdy', 22)
  331. insert into tmp.prac_skupina ( nazev, id_resitele)
  332. values ('Kapři', 23)
  333. insert into tmp.prac_skupina ( nazev, id_resitele)
  334. values ('Azmahu', 24)
  335.  
  336. go
  337. insert into tmp.osoba ( jmeno, prijmeni, id_fakulty)
  338. values ('Anička', 'Kuželová', 53 )
  339. insert into tmp.osoba ( jmeno, prijmeni, id_fakulty)
  340. values ('Pepa', 'Vojtel', 54)
  341. insert into tmp.osoba ( jmeno, prijmeni, id_fakulty)
  342. values ('Antonín', 'Kučera', 55)
  343. insert into tmp.osoba ( jmeno, prijmeni, id_fakulty)
  344. values ('Lukáš', 'Poláček', 56)
  345. insert into tmp.osoba ( jmeno, prijmeni, id_fakulty)
  346. values ('Lenka', 'Holá', 53)
  347. insert into tmp.osoba ( jmeno, prijmeni, id_fakulty)
  348. values ('Anetka', 'Rychlá', 60)
  349.  
  350.  
  351. go
  352. insert into tmp.osoba_na_aktivite ( kapacita, id_osoba, id_zdroj, id_sazba)
  353. values (5, 80, 1, 8)
  354. insert into tmp.osoba_na_aktivite ( kapacita, id_osoba, id_zdroj, id_sazba)
  355. values (2, 77, 2, 2)
  356. insert into tmp.osoba_na_aktivite ( kapacita, id_osoba, id_zdroj, id_sazba)
  357. values (3, 75, 3, 4)
  358. insert into tmp.osoba_na_aktivite ( kapacita, id_osoba, id_zdroj, id_sazba)
  359. values (4, 76, 4, 3)
  360.  
  361.  
  362. go -------------- POHLED -----------------
  363. CREATE VIEW Přehled_osob AS
  364. select * from tmp.osoba
  365. go
  366.  
  367. select * from Přehled_osob
  368.  
  369.  
  370. go
  371. CREATE VIEW osoby2 AS
  372. select distinct o.jmeno,o.prijmeni,f.nazev_fakulty from tmp.osoba o, tmp.fakulta f
  373. where o.id_fakulty = f.id_fakulty
  374. go
  375.  
  376. select * from osoby2
  377.  
  378.  
  379. go
  380. CREATE VIEW prehled AS
  381. select distinct o.jmeno,o.prijmeni,a.kapacita  from tmp.osoba o, tmp.osoba_na_aktivite a
  382. where a.id_osoba = o.id_osoba
  383. go
  384.  
  385. select * from prehled
  386.  
  387.  
  388. go
  389. CREATE VIEW prehled4 AS
  390. select distinct o.jmeno,o.prijmeni,f.nazev_fakulty,u.nazev_univerzity from tmp.osoba o, tmp.fakulta f, tmp.univerzita u
  391. where o.id_fakulty = f.id_fakulty or u.id_univerzity = f.id_univerzity
  392. go
  393.  
  394. select * from prehled4
  395.  
  396.  
  397. go --------------- KURZOR ----------------- spouští se celý
  398. declare Kurzor cursor for
  399.  select wp.popis, wp.doba_realizace as doba  from tmp.WP wp, tmp.projekt pr
  400.   where pr.id_projektu = 1 and pr.id_projektu = wp.id_wp
  401.  
  402.   declare
  403.   @popis varchar (50),
  404.   @doba_realizace varchar (10)
  405.  
  406.   open kurzor
  407.   fetch Kurzor into @popis, @doba_realizace
  408.    while @@FETCH_STATUS = 0
  409.     begin
  410.      print 'Popis procesu: '+@popis
  411.      print 'Doba realizace: '+@doba_realizace
  412.      print ''
  413.      fetch Kurzor into @popis,@doba_realizace
  414.     end
  415.    close kurzor
  416.   deallocate Kurzor
  417.    
  418.    
  419. go ------------ TRIGGER ---------------
  420. create table tmp.archiv_osoba
  421. (
  422. id_archiv_osoba int identity(1,1) primary key,
  423. jmeno varchar (50),
  424. prijmeni varchar (50),
  425. id_fakulty int foreign key references tmp.fakulta (id_fakulty),
  426. zmena int
  427. )  
  428.  
  429. go
  430. CREATE TRIGGER zmena_jmena on tmp.osoba
  431. for update
  432. as
  433. begin
  434.  declare
  435.   @puvodni int,
  436.   @novy int,
  437.   @zmena int,
  438.   @jmeno int,
  439.   @prijmeni int
  440.  
  441.  select @puvodni = jmeno from deleted
  442.  select @novy = jmeno from inserted
  443.  select @jmeno = jmeno from inserted
  444.  
  445.  set @zmena = @novy - @puvodni
  446.  
  447.  insert into tmp.archiv_osoba  (jmeno, zmena)
  448.  values (@jmeno, @zmena)
  449. end
  450.  
  451.  
  452.  
  453. go
  454. create table tmp.archiv_projekt
  455. (
  456. id_projektu int identity(1,1),
  457. nazev_projektu varchar(50),
  458. cil varchar(100),
  459. popis varchar(200),
  460. datum date,
  461. primary key (id_projektu)
  462. )
  463.  
  464. go
  465. CREATE TRIGGER smaz_projekt on tmp.projekt
  466. for delete
  467.  
  468. as
  469. begin
  470.  declare @nazev_projektu varchar (50)
  471.  set @nazev_projektu = (select id_projektu from deleted)
  472.  delete from tmp.projekt where id_projektu = @nazev_projektu
  473. end
  474.  
  475. begin tran smaz_projekt5
  476. delete from tmp.projekt where id_projektu = 1
  477. select * from tmp.projekt
  478. rollback tran smaz_projekt
  479. go
  480.  
  481.  
  482. go ---------------- PROCEDURA ------------- spouští se EXEC
  483. CREATE PROC add_osoba
  484. @jmeno varchar (50),
  485. @prijmeni varchar (50)
  486. as
  487. begin
  488.  insert into tmp.osoba(jmeno, prijmeni)
  489.  values (@jmeno, @prijmeni)
  490. END
  491.  
  492. EXEC add_osoba 'Martin', 'Hustý'
  493.  
  494. select * from tmp.osoba
  495.  
  496.  
  497. go
  498. CREATE PROC add_zeme
  499. @nazev_zeme varchar (100),
  500. @skratka_zeme varchar (80),
  501. @EU bit
  502. as
  503. begin
  504.  insert into tmp.zeme(nazev_zeme, skratka_zeme, EU)
  505.  values (@nazev_zeme, @skratka_zeme, @EU)
  506. END
  507.  
  508. EXEC add_zeme 'Rusko', 'RU', '1'
  509.  
  510. select * from tmp.zeme
  511.  
  512.  
  513. go
  514. CREATE PROC  add_cestovne
  515. @pocet_osob int,
  516. @naklady int
  517. as
  518. begin
  519.  insert into tmp.cestovne(pocet_osob, naklady)
  520.  values (@pocet_osob, @naklady)
  521. END
  522.  
  523. EXEC add_cestovne 100, 2500
  524.  
  525. select * from tmp.cestovne
Advertisement
Add Comment
Please, Sign In to add comment