SHOW:
|
|
- or go back to the newest paste.
| 1 | --1. Kreirati bazu podataka pod nazivom: BrojDosijea (npr. 2046) bez posebnog kreiranja data i log fajla. | |
| 2 | CREATE DATABASE [3020] | |
| 3 | ON PRIMARY | |
| 4 | (NAME='3020',FILENAME='D:\DBMS_Data\3020.mdf') | |
| 5 | GO | |
| 6 | ||
| 7 | --2. U Vašoj bazi podataka kreirati tabele sa sljedećim parametrima: | |
| 8 | --• Studenti | |
| 9 | --• StudentID, automatski generator vrijednosti i primarni ključ | |
| 10 | --• BrojDosijea, polje za unos 10 UNICODE karaktera (obavezan unos), jedinstvena vrijednost | |
| 11 | --• Ime, polje za unos 35 UNICODE karaktera (obavezan unos) | |
| 12 | --• Prezime, polje za unos 35 UNICODE karaktera (obavezan unos) | |
| 13 | --• Godina studija, polje za unos cijelog broja (obavezan unos) | |
| 14 | --• NacinStudiranja, polje za unos 10 UNICODE karaktera (obavezan unos) DEFAULT je Redovan | |
| 15 | --• Email, polje za unos 50 karaktera (nije obavezan) | |
| 16 | --• Nastava | |
| 17 | --• NastavaID, automatski generator vrijednosti i primarni ključ | |
| 18 | --• Datum, polje za unos datuma i vremana (obavezan unos) | |
| 19 | --• Predmet, polje za unos 20 UNICODE karaktera (obavezan unos) | |
| 20 | --• Nastavnik, polje za unos 50 UNICODE karaktera (obavezan unos) | |
| 21 | --• Ucionica, polje za unos 20 UNICODE karaktera (obavezan unos) | |
| 22 | --• Prisustvo | |
| 23 | --• PrisustvoID, automatski generator vrijednosti i primarni ključ | |
| 24 | --• StudentID, spoljni ključ prema tabeli Studenti | |
| 25 | --• NastavaID, spoljni ključ prema tabeli Nastava | |
| 26 | USE [3020] | |
| 27 | CREATE TABLE Studenti | |
| 28 | (StudentID INT IDENTITY(1,1) PRIMARY KEY, | |
| 29 | BrojDosijea NVARCHAR(10) NOT NULL UNIQUE, | |
| 30 | Ime NVARCHAR(35) NOT NULL, | |
| 31 | Prezime NVARCHAR(35) NOT NULL, | |
| 32 | GodinaStudija INT NOT NULL, | |
| 33 | NacinStudiranja NVARCHAR(10) NOT NULL DEFAULT 'Redovan', | |
| 34 | Email VARCHAR(50) | |
| 35 | ) | |
| 36 | GO | |
| 37 | CREATE TABLE Nastava | |
| 38 | (NastavaID INT IDENTITY(1,1) PRIMARY KEY, | |
| 39 | Datum DATETIME NOT NULL, | |
| 40 | Predmet NVARCHAR(20) NOT NULL, | |
| 41 | Nastavnik NVARCHAR(50) NOT NULL, | |
| 42 | Ucionica NVARCHAR(20) NOT NULL, | |
| 43 | ) | |
| 44 | GO | |
| 45 | CREATE TABLE Prisustvo | |
| 46 | (PrisustvoID INT IDENTITY(1,1) PRIMARY KEY, | |
| 47 | StudentID INT FOREIGN KEY (StudentID) REFERENCES Studenti(StudentID), | |
| 48 | NastavaID INT FOREIGN KEY (NastavaID) REFERENCES Nastava(NastavaID) | |
| 49 | ) | |
| 50 | GO | |
| 51 | ||
| 52 | --3. Kreirati tabelu Predmeti sa sljedećim parametrima: | |
| 53 | --• PredmetID, automatski generator vrijednosti i primarni ključ | |
| 54 | --• Naziv, polje za unos 30 UNICODE karaktera (obavezan unos), jedinstvena vrijednost | |
| 55 | --Modifikovati tabelu Nastava (ukloniti kolonu Predmet) i povezati je sa tabelom Predmeti. Koristeći INSERT komandu u tabelu Predmeti unijeti tri zapisa. | |
| 56 | CREATE TABLE Predmeti | |
| 57 | (PredmetID INT IDENTITY(1,1) PRIMARY KEY, | |
| 58 | Naziv NVARCHAR(30) UNIQUE | |
| 59 | ) | |
| 60 | GO | |
| 61 | ||
| 62 | ALTER TABLE Nastava | |
| 63 | DROP COLUMN Predmet | |
| 64 | GO | |
| 65 | ||
| 66 | ALTER TABLE Nastava | |
| 67 | ADD PredmetID INT FOREIGN KEY (PredmetID) REFERENCES Predmeti(PredmetID) | |
| 68 | GO | |
| 69 | ||
| 70 | INSERT INTO Predmeti | |
| 71 | VALUES ('Reporting'),
| |
| 72 | ('Sociologija'),
| |
| 73 | ('Komunikacijske tehnologije')
| |
| 74 | ||
| 75 | --4. Koristeći bazu podataka AdventureWorksLT2012 i tabelu SalesLT.Customer, preko INSERT i SELECT komande importovati 10 zapisa u tabelu Studenti i to sljedeće kolone: | |
| 76 | --• Prva tri karaktera kolone Phone -> BrojDosijea | |
| 77 | --• FirstName -> Ime | |
| 78 | --• LastName -> Prezime | |
| 79 | --• 2 -> GodinaStudija | |
| 80 | --• DEFAULT -> NacinStudiranja | |
| 81 | --• EmailAddress -> Email | |
| 82 | USE AdventureWorksLT2012 | |
| 83 | INSERT INTO [3020].dbo.Studenti(BrojDosijea,Ime,Prezime,GodinaStudija,Email) | |
| 84 | SELECT TOP 10 LEFT(Phone,3),FirstName,LastName,2,EmailAddress | |
| 85 | FROM SalesLT.Customer | |
| 86 | GO | |
| 87 | ||
| 88 | USE [3020] | |
| 89 | SELECT * | |
| 90 | FROM Studenti | |
| 91 | GO | |
| 92 | ||
| 93 | --5. U Vašoj bazi podataka kreirajte stored proceduru koja će na osnovu proslijeđenih parametara raditi izmjenu (UPDATE) podataka u tabeli Studenti. Proceduru pohranite pod nazivom usp_Studenti_Update. | |
| 94 | --Koristeći prethodno kreiranu proceduru izmijenite jedan zapis sa Vašim podacima. | |
| 95 | CREATE PROCEDURE usp_Studenti_Update | |
| 96 | @StudentID INT, | |
| 97 | @BrojDosijea NVARCHAR(10), | |
| 98 | @Ime NVARCHAR(35), | |
| 99 | @Prezime NVARCHAR(35), | |
| 100 | @GodinaStudija INT, | |
| 101 | @NacinStudiranja NVARCHAR(10), | |
| 102 | @Email VARCHAR(50) | |
| 103 | AS | |
| 104 | UPDATE Studenti | |
| 105 | SET BrojDosijea=@BrojDosijea, Ime=@Ime,Prezime=@Prezime,GodinaStudija=@GodinaStudija,NacinStudiranja=@NacinStudiranja,Email=@Email | |
| 106 | WHERE StudentID=@StudentID | |
| 107 | GO | |
| 108 | ||
| 109 | SELECT * | |
| 110 | FROM Studenti | |
| 111 | GO | |
| 112 | SELECT * | |
| 113 | FROM Predmeti | |
| 114 | GO | |
| 115 | SELECT * | |
| 116 | FROM Nastava | |
| 117 | GO | |
| 118 | SELECT * | |
| 119 | FROM Prisustvo | |
| 120 | GO | |
| 121 | ||
| 122 | EXEC usp_Studenti_Update 2,666,Mike,Smith,2,'Redovan','[email protected]' | |
| 123 | GO | |
| 124 | --6. U Vašoj bazi podataka kreirajte stored proceduru koja će raditi INSERT podataka u tabelu Nastava. Podaci se moraju unijeti preko parametara. | |
| 125 | --Također, u istoj proceduri dodati prisustvo na nastavi (koristeći INSERT SELECT komandu dodati prisustvo sve studente za prethodno dodanu nastavu). Proceduru pohranite pod nazivom usp_Nastava_Insert. | |
| 126 | CREATE PROCEDURE usp_Nastava_Insert | |
| 127 | @Datum DATETIME, | |
| 128 | @Nastavnik NVARCHAR(50), | |
| 129 | @Ucionica NVARCHAR(20), | |
| 130 | @PredmetID INT | |
| 131 | AS | |
| 132 | BEGIN | |
| 133 | INSERT INTO Nastava(Datum,Nastavnik,Ucionica,PredmetID) | |
| 134 | VALUES(@Datum,@Nastavnik,@Ucionica,@PredmetID) | |
| 135 | INSERT INTO Prisustvo | |
| 136 | SELECT StudentID,@@IDENTITY | |
| 137 | FROM Studenti | |
| 138 | END | |
| 139 | GO | |
| 140 | ||
| 141 | EXEC usp_Nastava_Insert '6/27/2014',Sejfudin,AMF,2 | |
| 142 | GO | |
| 143 | ||
| 144 | --7. Koristeći proceduru koju ste kreirali u prethodnom zadatku dodati novu nastavu. Za parametar @Datum proslijediti trenutni datum i vrijeme, a ostale parametre upisati ručno. | |
| 145 | DECLARE @sad DATETIME | |
| 146 | SET @sad=GETDATE() | |
| 147 | EXEC usp_Nastava_Insert @sad,Sejfudin,AMF,2 | |
| 148 | GO | |
| 149 | ||
| 150 | --8. U Vašoj bazi podataka kreirajte stored proceduru koja ća na osnovu proslijeđenih parametara (@NastavaID i @StudentID) brisati prisustvo na nastavi. Proceduru pohranite pod nazivom usp_Prisustvo_Delete. | |
| 151 | CREATE PROCEDURE usp_Prisustvo_Delete | |
| 152 | @StudentID INT, | |
| 153 | @NastavaID INT | |
| 154 | AS | |
| 155 | DELETE FROM Prisustvo | |
| 156 | WHERE NastavaID=@NastavaID AND StudentID=@StudentID | |
| 157 | GO | |
| 158 | EXEC usp_Prisustvo_Delete 2,8 | |
| 159 | GO | |
| 160 | ||
| 161 | --9. U Vašoj bazi podataka kreirajte view koji će sadržavati sljedeća polja: broj dosijea, ime i prezime studenta, datum nastave, učionicu, nastavnika i predmet. View pohranite pod nazivom view_Studenti_Nastava. | |
| 162 | CREATE VIEW view_Studenti_Nastava | |
| 163 | AS | |
| 164 | SELECT BrojDosijea'Broj dosijea',Ime,Prezime,Nastava.Datum,Nastava.Ucionica,Nastava.Nastavnik,Predmeti.Naziv | |
| 165 | FROM Studenti JOIN Prisustvo | |
| 166 | ON Studenti.StudentID=Prisustvo.PrisustvoID JOIN Nastava | |
| 167 | ON Nastava.NastavaID=Prisustvo.NastavaID JOIN Predmeti | |
| 168 | ON Predmeti.PredmetID=Nastava.PredmetID | |
| 169 | GO | |
| 170 | ||
| 171 | SELECT * | |
| 172 | FROM view_Studenti_Nastava |