View difference between Paste ID: AJyXDibg and ywYNt9BT
SHOW: | | - or go back to the newest paste.
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,'[email protected]'
93
EXEC proc_Edukatori_Insert Hamo,Sedmi,prof,'Aktivan',NULL,NULL,1,'[email protected]'
94
EXEC proc_Edukatori_Insert Hamo,Sedmi,prof,'Aktivan',NULL,NULL,1,'[email protected]'
95
EXEC proc_Edukatori_Insert Hamo,Sedmi,prof,'Aktivan',NULL,NULL,1,'[email protected]'
96
EXEC proc_Edukatori_Insert Hamo,Sedmi,prof,'Aktivan',NULL,NULL,1,'[email protected]'
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,'[email protected]'
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