uraharadono

CREATE TABLE - Vježba

Sep 6th, 2015
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --CREATE TABLE – Vježba
  2. --1. Kreirati bazu podatka sa jednim Data i jednim Log fajlom. Imenovati je Vašim brojem dosijea. Prilikom kreiranje baze za Data fajl postaviti sljedeće parametre:
  3. --Lokacija: C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQL2012\MSSQL\DATA
  4. --Veličina: inicijalno 5 MB,  
  5. --maksimalna veličina neograničena,
  6. --Rast: 10%
  7.  
  8. --Za Log fajl postaviti sljedeće paramtre:
  9. --Lokacija: C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQL2012\MSSQL\DATA
  10. --Veličina: inicijalno 2 MB,  
  11. --maksimalna veličina neograničena,
  12. --Rast: 5%
  13. CREATE DATABASE [6666]
  14. ON PRIMARY
  15. (NAME='3183',FILENAME='D:\DBMS_Data\3183.mdf',SIZE=5MB,FILEGROWTH=10%)
  16. LOG ON
  17. (NAME='3183_log',FILENAME='C:\DBMS_Data\3183_log.ldf',SIZE=2MB,FILEGROWTH=5%)
  18.  
  19. --2. Koristeći SQL kreirati sljedeće tabele i osigurati referencijalni integritet:
  20. --Edukatori (Ime, Prezime, Titula, Status, CV, Slika)
  21. --Predmeti (Naziv, Oznaka, ECTS (int))
  22. --EdukatoriPredmeti (Edukator, Predmet, Zvanje, BrojSati, Syllabus)
  23.  
  24. --Također, kreirati tabelu Fakulteti (Naziv, DatumOsnivanja, KontaktTelefon, Fax) i povezati je sa postojećim tabelama Edukatori i EdukatoriPredmeti. U tabelu Edukatori dodati još jedno polje Email.
  25. --Za polje ECTS iz tabele Predmeti promijeniti tip podatka u DECIMAL. (ALTER TABLE)
  26.  
  27. USE [6666]
  28. CREATE TABLE Edukatori
  29. (EdukatorID int IDENTITY(1,1) PRIMARY KEY,
  30. Ime NVARCHAR(20) NULL,
  31. Prezime NVARCHAR(40) NULL,
  32. Titula NVARCHAR(5) NULL,
  33. Status NVARCHAR(20) NULL,
  34. CV VARBINARY(MAX) NULL,
  35. Slika IMAGE NULL,
  36. )
  37. GO
  38. CREATE TABLE Predmeti
  39. (PredmetID INT IDENTITY(1,1) PRIMARY KEY,
  40. Naziv NVARCHAR(50) NOT NULL,
  41. Oznaka NVARCHAR(5) NULL,
  42. ECTS int
  43. )
  44. GO
  45. CREATE TABLE EdukatoriPredmeti
  46. (EdukatorPredmetID INT IDENTITY(1,1) PRIMARY KEY,
  47. EdukatorID INT FOREIGN KEY (EdukatorID) REFERENCES Edukatori(EdukatorID),
  48. PredmetID INT FOREIGN KEY (PredmetID) REFERENCES Predmeti(PredmetID),
  49. Zvanhe NVARCHAR(10) NULL,
  50. BrojSati INT,
  51. Syllabus NVARCHAR(100) NULL
  52. )
  53. GO
  54.  
  55. CREATE TABLE Fakulteti
  56. (FakultetID INT IDENTITY(1,1)PRIMARY KEY,
  57. Naziv NVARCHAR(50) NULL,
  58. DatumOsnivanja DATETIME NULL,
  59. KontaktTelefon NVARCHAR(20) NULL,
  60. Fax NVARCHAR(20) NULL,
  61. )
  62. GO
  63.  
  64. ALTER TABLE Edukatori
  65. ADD FakultetID int FOREIGN KEY (FakultetID) REFERENCES Fakulteti(FakultetID)
  66. --EdukatoriPredmeti imaju FK edukatora tako da u njih ne trebamo dodavati fk fakulteta
  67. ALTER TABLE Edukatori
  68. ADD Email nvarchar(30)
  69. GO
  70.  
  71. ALTER TABLE Predmeti
  72. ALTER COLUMN ECTS decimal
  73. GO
  74. --3. Kreirati proceduru za insert podataka u tabelu Edukatori sa imenom proc_Edukatori_Insert. Proceduri proslijediti sve parametre.
  75. --Također, kreirati procedure za UPDATE i DELETE podataka nad istom tabelom. Izvršiti proceduru INSERT i u tabelu ubaciti 5 zapisa.
  76. CREATE PROCEDURE proc_Edukatori_Insert
  77. @Ime NVARCHAR(20),
  78. @Prezime NVARCHAR(40),
  79. @Titula NVARCHAR(5),
  80. @Status NVARCHAR(20),
  81. @CV VARBINARY(MAX),
  82. @Slika IMAGE,
  83. @FakultetID int,
  84. @Email nvarchar(30)
  85. AS
  86. INSERT INTO Edukatori
  87. VALUES(@Ime,@Prezime,@Titula,@Status,@CV,@Slika,@FakultetID,@Email)
  88. GO
  89. INSERT INTO Fakulteti
  90. VALUES('FIT',2004,036999666,036999667)
  91.  
  92. EXEC proc_Edukatori_Insert Hamo,Sedmi,prof,'Aktivan',NULL,NULL,1,'hamo_sedmi@mailg.com'
  93. EXEC proc_Edukatori_Insert Hamo,Sedmi,prof,'Aktivan',NULL,NULL,1,'hamo_sedmi@mailg.com'
  94. EXEC proc_Edukatori_Insert Hamo,Sedmi,prof,'Aktivan',NULL,NULL,1,'hamo_sedmi@mailg.com'
  95. EXEC proc_Edukatori_Insert Hamo,Sedmi,prof,'Aktivan',NULL,NULL,1,'hamo_sedmi@mailg.com'
  96. EXEC proc_Edukatori_Insert Hamo,Sedmi,prof,'Aktivan',NULL,NULL,1,'hamo_sedmi@mailg.com'
  97. SELECT *
  98. FROM Edukatori
  99. SELECT*
  100. FROM Fakulteti
  101.  
  102. CREATE PROCEDURE upd_edukatori
  103. @EdukatorID int,
  104. @Ime NVARCHAR(20),
  105. @Prezime NVARCHAR(40),
  106. @Titula NVARCHAR(5),
  107. @Status NVARCHAR(20),
  108. @CV VARBINARY(MAX),
  109. @Slika IMAGE,
  110. @FakultetID int,
  111. @Email nvarchar(30)
  112. AS
  113. UPDATE Edukatori
  114. SET Ime=@Ime,Prezime=@Prezime,Titula=@Titula,Status=@Status,CV=@CV,Slika=@Slika,FakultetID=@FakultetID,Email=@Email
  115. FROM Edukatori
  116. WHERE EdukatorID=@EdukatorID
  117. GO
  118.  
  119. EXEC upd_edukatori 3,hamica,deveti,dr,zbunjen,NULL,NULL,1,'zbunjen@normalan.lud'
  120.  
  121. SELECT *
  122. FROM Edukatori
  123. GO
  124.  
  125. CREATE PROCEDURE del_edukatori
  126. @EdukatorID int
  127. AS
  128. DELETE FROM Edukatori
  129. WHERE EdukatorID=@EdukatorID
  130. GO
  131.  
  132. EXEC del_edukatori 6
  133. GO
  134. --4. U tabele Predmeti i Fakulteti insertovati po 5 zapisa. Također, u tabelu EduktoriPredmeti insertovati testne podatke (ko predaje određeni predmet na kojem fakultetu).
  135. INSERT INTO Predmeti
  136. VALUES('Algoritmi i strukture podataka','ASP',7),
  137. ('Reporting','RP',2),
  138. ('Sociologija','SC',1),
  139. ('Programiranje','PR',7),
  140. ('Baze podataka','BP',8)
  141.  
  142. INSERT INTO Fakulteti
  143. VALUES('Fakultet informacijskih tehnologija','1.1.2003 16:00',063767676,063737373),
  144. ('Fakultet informacijskih tehnologija','2.21.2003 16:00',063767676,063737373),
  145. ('Fakultet informacijskih tehnologija','1.1.2003 16:00',063767676,063737373),
  146. ('Fakultet informacijskih tehnologija','1.1.2003 16:00',063767676,063737373),
  147. ('Fakultet informacijskih tehnologija','1.1.2003 16:00',063767676,063737373)
  148.  
  149. SELECT *
  150. FROM Fakulteti
  151.  
  152. SELECT*
  153. FROM Edukatori
  154. SELECT*
  155. FROM Predmeti
  156.  
  157. INSERT INTO EdukatoriPredmeti
  158. VALUES(2,1,'prof.dr',2,'workshop'),
  159. (2,1,'prof.dr',2,'workshop'),
  160. (3,4,'prof.dr',2,'workshop'),
  161. (5,1,'prof.dr',2,'workshop'),
  162. (5,5,'prof.dr',2,'workshop')
  163.  
  164. SELECT *
  165. FROM EdukatoriPredmeti
  166. GO
  167. --5. Kreirati pogled (VIEW) koji će obuvatiti sve tabele i imenovati ga view_EdukatoriPredmeti.
  168. CREATE VIEW view_EdukatoriPredmeti --Skraceno da ne pisem sve kolone
  169. AS
  170. SELECT Ime'Ime edukatora',Prezime'Prezime edukatora',Zvanhe'Zvanje',Naziv'Predmet',Oznaka,BrojSati'Broj sati'
  171. FROM Edukatori JOIN EdukatoriPredmeti
  172. ON Edukatori.EdukatorID=EdukatoriPredmeti.EdukatorID JOIN Predmeti
  173. ON Predmeti.PredmetID=EdukatoriPredmeti.PredmetID
  174. GO
  175.  
  176. SELECT *
  177. FROM view_EdukatoriPredmeti
  178. GO
  179. --6. Kreirati proceduru sa imenom proc_EdukatoriPredmetiSelectByPredmet koja će na osvnovu proslijeđenog parametra (naziv predmeta) vraćati sve angažovane na predmetu.
  180. CREATE PROCEDURE proc_EdukatoriPredmetiSelectByPredmet
  181. @Naziv nvarchar(50)
  182. AS
  183. SELECT E.Ime
  184. FROM Predmeti AS P JOIN EdukatoriPredmeti AS EP
  185. ON P.PredmetID=EP.PredmetID JOIN Edukatori AS E
  186. ON EP.EdukatorID=E.EdukatorID
  187. WHERE P.Naziv=@Naziv
  188. GO
  189.  
  190. EXEC proc_EdukatoriPredmetiSelectByPredmet 'Algoritmi i strukture podataka'
  191.  
  192. --7. Koristeći proceduru proc_Edukatori_Delete (iz zadatka 3) obrisati 2 edukatora. Ukoliko edukatori imaju definisane predmete,
  193. --modifikovati proceduru tako da prethodno obriše sve predmete od edukatora, pa tek onda obriše zapis iz tabele Edukatori.
  194. SELECT *
  195. FROM EdukatoriPredmeti
  196. SELECT * FROM Edukatori
  197.  
  198. ALTER PROCEDURE del_edukatori
  199. @EdukatorID int
  200. AS
  201. DELETE FROM EdukatoriPredmeti
  202. WHERE EdukatorID=@EdukatorID
  203. DELETE FROM Edukatori
  204. WHERE EdukatorID=@EdukatorID
  205. GO
  206.  
  207. EXEC del_edukatori 5
  208. GO
  209. --8. Koristeći proceduru proc_Edukatori_Update (iz zadatka 3) izmijeniti titulu za proizvoljnog edukatora.
  210. ALTER PROCEDURE upd_edukatori
  211. @EdukatorID int,
  212. @Titula NVARCHAR(5)
  213. AS
  214. UPDATE Edukatori
  215. SET Titula=@Titula
  216. FROM Edukatori
  217. WHERE EdukatorID=@EdukatorID
  218. GO
  219.  
  220. EXEC upd_edukatori 2,'Mr.'
  221.  
  222. SELECT *
  223. FROM Edukatori
Add Comment
Please, Sign In to add comment