Advertisement
Lachezar1

SemestrialnaSQL

Jan 10th, 2024
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 6.19 KB | None | 0 0
  1. CREATE TABLE klient(
  2. ime VARCHAR(30),
  3. tel VARCHAR(30),
  4. email VARCHAR(30),
  5. kliend_id INT);
  6.  
  7. CREATE TABLE SLUJITEL(
  8. ime VARCHAR(30),
  9. telefon VARCHAR(30),
  10. email VARCHAR(30),
  11. slujitel_id INT,
  12. poziciq INTEGER);
  13.  
  14. CREATE TABLE pozicii(
  15. vid_poziciq VARCHAR(30),
  16. id INT);
  17.  
  18. CREATE TABLE vidDogovor(
  19. vid VARCHAR(30),
  20. id INT);
  21.  
  22. CREATE TABLE DOGOVOR(
  23. nomerNaDogovor INT,
  24. slujitel INT,
  25. klient INT,
  26. dataNaDogovor DATE,
  27. vidNaDogovor INT);
  28.  
  29. CREATE TABLE DogovorToUsluga(
  30. dogovor_id INT,
  31. usluga_id INT);
  32.  
  33. CREATE TABLE Uslugi(
  34. ime VARCHAR(30),
  35. opisanie VARCHAR(30),
  36. cena NUMBER,
  37. usluga_id INT);
  38.  
  39. ALTER TABLE klient
  40. ADD PRIMARY KEY (kliend_id);
  41.  
  42. ALTER TABLE DOGOVOR
  43. ADD FOREIGN KEY(klient)
  44. REFERENCES klient(kliend_id);
  45.  
  46. ALTER TABLE vidDogovor
  47. ADD PRIMARY KEY(id);
  48.  
  49. ALTER TABLE DOGOVOR
  50. ADD FOREIGN KEY(vidNaDogovor)
  51. REFERENCES vidDogovor(id);
  52.  
  53.  
  54. ALTER TABLE pozicii
  55. ADD PRIMARY KEY(id);
  56.  
  57. ALTER TABLE slujitel
  58. ADD FOREIGN KEY(poziciq)
  59. REFERENCES pozicii(id);
  60.  
  61.  
  62. ALTER TABLE slujitel
  63. ADD PRIMARY KEY(slujitel_id);
  64.  
  65. ALTER TABLE DOGOVOR
  66. ADD FOREIGN KEY(slujitel)
  67. REFERENCES slujitel(slujitel_id);
  68.  
  69.  
  70. ALTER TABLE DOGOVOR
  71. ADD PRIMARY KEY(nomerNaDogovor);
  72.  
  73. ALTER TABLE DogovorToUsluga
  74. ADD FOREIGN KEY(dogovor_id)
  75. REFERENCES DOGOVOR(nomerNaDogovor);
  76.  
  77.  
  78. ALTER TABLE Uslugi
  79. ADD PRIMARY KEY(usluga_id);
  80.  
  81. ALTER TABLE DogovorToUsluga
  82. ADD FOREIGN KEY(usluga_id)
  83. REFERENCES Uslugi(usluga_id);
  84.  
  85.  
  86. /*pozicii*/
  87. INSERT INTO pozicii(vid_poziciq,id) VALUES ('programist',1);
  88. INSERT INTO pozicii(vid_poziciq,id) VALUES ('upravitel',2);
  89. INSERT INTO pozicii(vid_poziciq,id) VALUES ('chistach',3);
  90. INSERT INTO pozicii(vid_poziciq,id) VALUES ('prodavachKonsultant',4);
  91. INSERT INTO pozicii(vid_poziciq,id) VALUES ('manager',5);
  92. /* slujitel*/
  93. INSERT INTO slujitel(ime,telefon,email,slujitel_id,poziciq) VALUES ('Ivan',0898423485,'ivangeorgiev@gmail.com ',1,1);
  94. INSERT INTO slujitel(ime,telefon,email,slujitel_id,poziciq) VALUES ('Georgi',0897712376,'georgiPetrov@gmail.com ',2,2);
  95. INSERT INTO slujitel(ime,telefon,email,slujitel_id,poziciq) VALUES ('Petar',0897642371,'petarBratoev@gmail.com',3,2);
  96. INSERT INTO slujitel (ime,telefon,email,slujitel_id,poziciq) VALUES ('boqn',0895412249,'boqnIvanovv@gmail.com',4,3);
  97.  
  98. /* vidDogovor*/
  99. INSERT INTO vidDogovor(vid,id) VALUES(celogodishen,1);
  100. INSERT INTO vidDogovor(vid,id) VALUES(ejemesechen,2);
  101. INSERT INTO vidDogovor(vid,id) VALUES(dojivoten ,3);
  102. INSERT INTO vidDogovor(vid,id) VALUES(polovingodishen,4);
  103.  
  104. /*Klient*/
  105.  
  106. INSERT INTO klient(ime,tel,email,kliend_id) VALUES ('Martin',0986575624,'martinIvanov@abv.bg',1);
  107. INSERT INTO klient(ime,tel,email,kliend_id) VALUES ('Kristiqn',0895698124,'KristiqnPetrov@gmail.com',2);
  108. INSERT INTO klient(ime,tel,email,kliend_id) VALUES ('Ivan',0896758345,'IvanKirov@gmail.com',3);
  109. INSERT INTO klient(ime,tel,email,kliend_id) VALUES ('Dimitur',0878542167,'DimiturGeorgiev@gmail.com',4);
  110.  
  111.  
  112. /*uslugi*/
  113. INSERT INTO uslugi(ime,opisanie,cena,usluga_id) VALUES ('Prekratqvane','Prekratqvane Na Dogovora',10.5,1);
  114. INSERT INTO uslugi(ime,opisanie,cena,usluga_id) VALUES ('Smqna','Smqna na Dogovor',4.5,2);
  115. INSERT INTO uslugi(ime,opisanie,cena,usluga_id) VALUES ('Obnovqvane','obnovqvane na Dogovor',2.5,3);
  116. INSERT INTO uslugi(ime,opisanie,cena,usluga_id) VALUES ('MBPlus','uvelichavane na megabaitite',5.5,4);
  117. INSERT INTO uslugi(ime,opisanie,cena,usluga_id) VALUES ('Neogranichen','Neogranichen plan nachalo',6.9,5);
  118.  
  119.  
  120. /*Dovogor to Usluga*/
  121. INSERT INTO dogovortousluga(dogovor_id,usluga_id) VALUES (1,3);
  122. INSERT INTO dogovortousluga(dogovor_id,usluga_id) VALUES (3,4);
  123. INSERT INTO dogovortousluga(dogovor_id,usluga_id) VALUES (2,3);
  124. INSERT INTO dogovortousluga(dogovor_id,usluga_id) VALUES (1,4);
  125. INSERT INTO dogovortousluga(dogovor_id,usluga_id) VALUES (3,5);
  126.  
  127. /*dogovor*/
  128. INSERT INTO dogovor(nomernadogovor,slujitel,klient,datanadogovor,vidnadogovor) VALUES (1,1,2,'01-JAN-03',3);
  129. INSERT INTO dogovor(nomernadogovor,slujitel,klient,datanadogovor,vidnadogovor) VALUES (2,3,1,'11-SEP-15',2);
  130. INSERT INTO dogovor(nomernadogovor,slujitel,klient,datanadogovor,vidnadogovor) VALUES (3,2,4,'18-MAR-18',1);
  131. INSERT INTO dogovor(nomernadogovor,slujitel,klient,datanadogovor,vidnadogovor) VALUES (4,3,1,'22-MAY-17',3);
  132.  
  133.  
  134. UPDATE slujitel
  135. SET ime='Boqn'
  136. WHERE slujitel_id=4;
  137.  
  138. /*11*/
  139. SELECT *
  140. FROM USLUGI
  141. WHERE IME='&IME';
  142.  
  143. SELECT SLUJITEL.ime,Slujitel.email,klient.ime,klient.email,vidDogovor.vid,dogovor.datanadogovor
  144. FROM DOGOVOR
  145. JOIN SLUJITEL ON SLUJITEL.slujitel_id=DOGOVOR.slujitel
  146. JOIN KLIENT ON klient.kliend_id=DOGOVOR.klient
  147. JOIN VIDDOGOVOR ON vidDogovor.id=dogovor.vidnadogovor
  148. WHERE NOMERNADOGOVOR='&nomernadogovor';
  149.  
  150. SELECT ime,tel,email
  151. FROM KLIENT
  152. WHERE IME='&IME';
  153.  
  154.  
  155. SELECT dogovor.datanadogovor,klient.ime,klient.email
  156. FROM dogovor  
  157. JOIN klient ON klient.kliend_id=dogovor.klient
  158. WHERE dogovor.vidnadogovor=(SELECT id FROM viddogovor WHERE vid='&vid');
  159.  
  160.  
  161.  
  162. /*12*/
  163. SELECT dogovor.datanadogovor,klient.ime,klient.email,viddogovor.vid
  164. FROM DOGOVOR
  165. JOIN klient ON klient.kliend_id=dogovor.klient
  166. JOIN viddogovor ON viddogovor.id=dogovor.vidnadogovor
  167. WHERE datanadogovor BETWEEN '&datanadogovor' AND '&datanadogovor';
  168.  
  169.  
  170. SELECT uslugi.ime,uslugi.opisanie,uslugi.cena
  171. FROM dogovor
  172. JOIN dogovortousluga ON dogovortousluga.dogovor_id=dogovor.nomernadogovor
  173. JOIN uslugi ON uslugi.usluga_id=dogovortousluga.usluga_id
  174. WHERE uslugi.usluga_id IN (SELECT usluga_id FROM dogovortousluga WHERE dogovortousluga.dogovor_id=&&id)
  175. AND dogovortousluga.dogovor_id=&id;
  176.  
  177.  
  178. SELECT DISTINCT uslugi.ime,uslugi.opisanie,uslugi.cena,dogovor.datanadogovor
  179. FROM dogovor
  180. JOIN dogovortousluga ON dogovortousluga.dogovor_id=dogovor.vidnadogovor
  181. JOIN klient ON klient.kliend_id=dogovor.klient
  182. JOIN uslugi ON uslugi.usluga_id=dogovortousluga.usluga_id
  183. WHERE dogovortousluga.usluga_id IN (SELECT  usluga_id FROM dogovortousluga WHERE dogovortousluga.dogovor_id IN
  184.                         (SELECT  dogovor.vidnadogovor FROM dogovor WHERE klient=
  185.                         (SELECT  klient.kliend_id FROM klient WHERE klient.ime='&&ime')) )
  186.                         AND klient.kliend_id= (SELECT  klient.kliend_id FROM klient WHERE klient.ime='&ime')
  187.                         ORDER BY dogovor.datanadogovor;
  188.                        
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement