/* Prvi čas sa MS SQL serverom Grupa 2 Utorak od 14:00 do 15:35 -- 10.10.2017. - 1. susret - 3. nedelja -- Kreiranje baze podataka, kreiranje tabela sa primarnim i spoljnim ključevima 1. Kreirati bazu podataka Naziv baze podataka: NarudzbaRobe LDM: u datoteci Zadatak-Nedelja3--Feladat-3het.docx/pdf Grupa 2 */ -- Bisati stare baze podataka /* Naredba za brisanje je drop database nazivbazepodataka; go Instalaciona verzija MSSQL Server-a je na desktopu, folder Aplikacije i unutar u folderu Microsoft SQL Deramspark */ create database NarudzbaRobe; go use NarudzbaRobe; go create table Kupac ( Sif_kupca int not null constraint Id_kupca primary key, Naz_kupca varchar(30), Post_broj numeric(5), Adresa varchar(20)) go create table Narudzba ( Br_narudzbe int, Sif_kupca int, Datum_narudzbe date, constraint Id_narudzbe primary key (Br_narudzbe), constraint Nar_spklj foreign key (Sif_kupca) references kupac(sif_kupca)); go /* Drugi čas sa MS SQL serverom Grupa 2 Utorak od 14:00 do 15:35 -- 17.10.2017. - 2. susret - 4. nedelja -- Kreiranje tabela sa raznim ograničenjima 1. Završiti zadatak sa prethodnih vežbi 2. Kreirati bazu podataka Naziv baze podataka: NarudzbaRobe LDM: u datoteci Zadatak-Nedelja3--Feladat-3het.docx/pdf Grupa 2 */ /* Primer prve grupe za definisanje ogranicenja na nivou polja/kolone create table Otpremnica ( Br_otpremnice tinyint not null default 1 primary key check (Br_otpremnice between 1 and 255), Sif_kupca int not null default 2 foreign key references Kupac(Sif_kupca) check (Sif_kupca between 1 and 10000), Datum_otpreme date not null default (getdate()) check (Datum_otpreme>getdate()), Vrednost_otpreme numeric(12,2) not null default 0 check (Vrednost_otpreme>10)); go */ use NarudzbaRobe; go create table Roba_cenovnik ( Sif_robe tinyint not null, Jed_mere char(10) not null, Naziv_robe varchar(20), Jed_cena numeric(15,2), constraint Id_roba_cenovnik primary key (Sif_robe,Jed_mere)); go create table Stavka_narudzbe ( Sif_robe tinyint not null, Jed_mere char(10) not null, Br_narudzbe int not null foreign key references Narudzba(Br_narudzbe), Narucena_kol decimal(12,2), constraint Identifier_1 primary key (Sif_robe,Jed_mere,Br_narudzbe)); go drop table Stavka_narudzbe; go create table Stavka_narudzbe ( Sif_robe tinyint not null, Jed_mere char(10) not null, Br_narudzbe int not null foreign key references Narudzba(Br_narudzbe), Narucena_kol decimal(12,2), constraint sp_klj_prema_narudzbi foreign key (Sif_robe,Jed_mere) references Roba_cenovnik(Sif_robe,Jed_mere), constraint Identifier_1 primary key (Sif_robe,Jed_mere,Br_narudzbe)); go drop table Stavka_narudzbe; go create table Stavka_narudzbe ( Sif_robe tinyint not null, Jed_mere char(10) not null, Br_narudzbe int not null foreign key references Narudzba(Br_narudzbe), Narucena_kol decimal(12,2), constraint sp_klj_prema_narudzbi foreign key (Sif_robe,Jed_mere) references Roba_cenovnik(Sif_robe,Jed_mere) on delete no action on update cascade, constraint Identifier_1 primary key (Sif_robe,Jed_mere,Br_narudzbe)); go -- Kreiranje 4 tabele sa ogranicenjima ostaju za domaci zadatak -- Sintaksa naredbi za alter table, insert, update i delete je objasnjeno /* Treci cas sa MS SQL serverom Grupa 2 Utorak od 14:00 do 15:35 -- 24.10.2017. - 3. susret - 5. nedelja -- Modifikacija strukture tabele (polja i ogranicenja) -- i unos, modifikacija i brisne podataka u tabelama */ use NarudzbaRobe; go alter table dbo.Roba_cenovnik alter column Naziv_robe char(25) not null; go -- 2018 alter table dbo.Kupac alter column Naz_kupca char(25) not null; go alter table dbo.Kupac alter column Naz_kupca varchar(25) not null default 'Nas Kupac'; go alter table Kupac add constraint uc_DF_Nazkupca default 'Nas Kupac' for Naz_kupca; go alter table kupac drop column naz_kupca; go alter table kupac drop constraint uc_DF_Nazkupca; go alter table kupac drop column naz_kupca; go alter table kupac add Naziv_kupca varchar(35) not null default 'Nas Kupac'; go alter table dbo.Roba_cenovnik alter constraint alter table dbo.Roba_cenovnik drop Ogr_cene; go alter table dbo.Roba_cenovnik add constraint Ogr_cene_1 check (Jed_cena between 0 and 25000); go alter table dbo.Narudzba drop constraint Nar_spklj; go alter table dbo.Narudzba add constraint Nar_spklj_1 foreign key (Sif_kupca) references dbo.Kupac(Sif_kupca) on delete cascade on update cascade; go -- 2018 alter table dbo.Roba_cenovnik add datum_upisa date not null default(getdate()); go alter table dbo.Roba_cenovnik add constraint Ogr_cene check(Jed_cena between 0 and 5000); go alter table dbo.Roba_cenovnik add upisao varchar(25) not null default 'Administrator'; go alter table dbo.Roba_cenovnik drop constraint DF__Roba_ceno__upisa__117F9D94; go alter table dbo.Roba_cenovnik drop column upisao; go -- 2018 select * from Kupac; insert dbo.Kupac values (2,11111,'M.Oreskovica 16','Kupac2'); go -- 2018 insert into Roba_cenovnik values (1,'litar', 'Mleko', 97, '10-24-2017'); go select * from dbo.Roba_cenovnik; go -- 2018-pocetak-02-11-2018 select * from Kupac insert Kupac values (5, 24000, 'Marka Oreskovica 16','Kupac5'); go insert Kupac (Post_broj,Adresa,Naziv_kupca,Sif_kupca) values (25000, 'Marka Or. 16','Kupac1',1); go insert Kupac (Adresa,Sif_kupca) values ('Marka Or. 16',9); go select * from Narudzba insert Narudzba (Br_narudzbe,Sif_kupca) values(3,5); go update Narudzba set Sif_kupca=5, Datum_narudzbe=GETDATE() where Br_narudzbe=2; update Kupac set Sif_kupca=50 where Sif_kupca=9; select * from Kupac select * from Narudzba update Kupac set Sif_kupca=5 where Sif_kupca=55; delete Kupac where Sif_kupca=50; create view Pogled_Na_Kupca (Kupac,Grad,"Poštanski broj") AS (select Naziv_kupca,Adresa,Post_broj from Kupac); go select * from Pogled_Na_Kupca -- 2018-kraj-02-11-2018 insert into Roba_cenovnik values (2,'litar', 'Kefir', 110, '2017.10.24'); go insert into dbo.Roba_cenovnik (datum_upisa,Sif_robe,Naziv_robe,Jed_mere) values ('2017.08.25',3,'Jogurt','litar'); go select * from dbo.Roba_cenovnik; go insert into dbo.Roba_cenovnik (datum_upisa,Sif_robe,Naziv_robe,Jed_mere) values (null,4,'Kiselo mleko','kg'); go insert into dbo.Roba_cenovnik (Sif_robe,Naziv_robe,Jed_mere) values (4,'Kiselo mleko','kg'); go insert into dbo.Roba_cenovnik (Sif_robe,Naziv_robe,Jed_mere,Jed_cena ) values (5,'Kiselo pavlaka','kg',5001); go Update dbo.Roba_cenovnik set Jed_mere='tona', Jed_cena=5000; go Update dbo.Roba_cenovnik set Jed_mere='litar', Jed_cena=97 where Naziv_robe='Mleko'; go select * from dbo.Roba_cenovnik; go delete dbo.Roba_cenovnik where datum_upisa <> getdate(); go create view Pogled_Robe_cenovnika (Naziv_robe, Sifra_robe, Jedinica_mere, Jedinicna_cena) as (select Naziv_robe,Sif_robe,Jed_mere,Jed_cena from dbo.Roba_cenovnik); go