Docsity
Docsity

Pripremite ispite
Pripremite ispite

Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u


Nabavite poene za preuzimanje
Nabavite poene za preuzimanje

Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan


Školska orijentacija
Školska orijentacija


07 Baze podataka13N, Šeme i konceptualne mape od Baze podataka

da definišu podatke u nekoj bazi podataka i da manipulišu tim podacima. Na primeru date šeme relacione baze podataka 'Radnici' realizovati zadate SQL upite:.

Tipologija: Šeme i konceptualne mape

2022/2023

Učitan datuma 13.01.2023.

Dulijana_Marja
Dulijana_Marja 🇸🇷

5

(3)

1 / 10

Toggle sidebar

Ova stranica nije vidljiva u pregledu

Ne propustite važne delove!

bg1
SQL (Structure Query Language)
SQL je sruktuirani upitni jezik koji omogućava korisnicima pristup podacima u sistemima za
upravljanje relacionim bazama podataka, kao što su MySQL, Oracle, Microsoft SQL server i
drugi, tako što dopušta korisnicima da opišu podatke koje žele da dobiju. Takođe im omogućava
da definišu podatke u nekoj bazi podataka i da manipulišu tim podacima.
Na primeru date šeme relacione baze podataka Radnici’ realizovati zadate SQL upite:
1. Izlistati sadržaj svih tabela.
select * from Radnik;
select * from Projekat;
select * from Radi;
select * from kompanija;
2. Izlistati različite plate radnika.
select distinct plt from Radnik;
pf3
pf4
pf5
pf8
pf9
pfa

Delimični pregled teksta

Preuzmite 07 Baze podataka13N i više Šeme i konceptualne mape u PDF od Baze podataka samo na Docsity!

SQL (Structure Query Language)

SQL je sruktuirani upitni jezik koji omogućava korisnicima pristup podacima u sistemima za upravljanje relacionim bazama podataka, kao što su MySQL, Oracle, Microsoft SQL server i drugi, tako što dopušta korisnicima da opišu podatke koje žele da dobiju. Takođe im omogućava da definišu podatke u nekoj bazi podataka i da manipulišu tim podacima.

Na primeru date šeme relacione baze podataka ‘ Radnici’ realizovati zadate SQL upite:

  1. Izlistati sadržaj svih tabela.

select * from Radnik; select * from Projekat; select * from Radi; select * from kompanija;

  1. Izlistati različite plate radnika.

select distinct plt from Radnik;

  1. Izlistati matični broj, prezime i ime radnika koji imaju platu veću od 25000.

select mbr, prezR, imeR from Radnik where plt>25000 ;

  1. Izlistati matični broj, prezime, ime radnika koji nemaju šefa.

select mbr, prezR, imeR from Radnik where sef is null ;

  1. Izlistati matični broj, prezime i ime radnika čija je plata između 20000 i 25000.

select mbr, prezR, imeR from Radnik where plt between 20000 and 25000;

ili

select mbr, prezR, imeR from Radnik where plt >= 20000 and plt <= 25000;

  1. Izlistati matični broj, prezime i ime radnika čije ime počinje na slovo S.

select mbr, prezR, imeR from Radnik where imeR like 'S%' ;

  1. Izlistati matični broj, prezime i ime radnika čije prezime počinje na slovo M, a poslednje slovo prezimena je Ć.

select mbr, prezR, imeR from Radnik where prezR like 'M%ć';

  1. Izlistati sve podatke za prvih 5 radnika.

select * from Radnik limit 5;

  1. Koliko ima radnika?

select count()* from Radnik;

  1. Prikazati minimalnu i maksimalnu platu radnika, pri čemu nazivi tih kolona treba da budu minimalna i maksimalna.

select min(plt) minimalna, max(plt) maksimalna from Radnik; ili select min(plt) as minimalna, max(plt) as maksimalna from Radnik;

  1. Prikazati prosečnu platu svih radnika zaokruženo na ceo broj, pri čemu naziv te kolone treba da je Prosečna plata.

select round(avg(plt)) as ‘Prosečna plata’ from Radnik;

  1. Prikazati prosečnu platu svih radnika zaokruženo na jednu decimalu.

select round(avg(plt),1) from Radnik;

  1. Prikazati broj radnika, prosečnu platu i ukupnu godišnju platu svih radnika.

select count(), avg(plt), 12sum(plt) from Radnik;

SPAJANJE TABELA

  1. Prikazati matične brojeve, prezimena i imena radnika, oznake i nazive projekata na kojima su angažovani i broj časova angažovanja.

select radnik.mbr, radnik.prezR, radnik.ime, projekat.idP, projekat.nazivP, radi.brojCas

from Radnik, Radi, Projekat where radnik.mbr=radi.mbr and projekat.idP=radi.idP ;

ili

select radnik.mbr, prezR, imeR, projekat.idP, nazivP, brojCas from Radnik, Radi, Projekat where radnik.mbr=radi.mbr and projekat.idP=radi.idP;

  1. Prikazati matični broj, prezime, ime, platu i broj časova angažovanja svih radnika koji rade na projektu sa oznakom 1.

select radnik.mbr, prezR, imeR, plt, brojCas from Radnik, Radi where radnik.mbr=radi.mbr and radi.idP=1;

ili

select r.mbr, prezR, imeR, plt, rn.brojCas from Radnik r, Radi rn where r.mbr=rn.mbr and rn.idP=1;

  1. Prikazati matični broj, prezime, ime, platu i broj casova angažovanja svih radnika koji rade na svim projektima osim onog sa oznakom 2.

select radnik.mbr, prezR, imeR, plt, brojCas from Radnik, Radi where radnik.mbr=radi.mbr and radi.idP!=2 ;

  1. Prikazati nazive projekata na kojima radi radnik sa datim imenom i prezimenom (npr. Miskovic Miroslav).

group by r.sef;

  1. Prikazati za svakog radnika matični broj, prezime, ime, ukupan broj projekata i ukupno angažovanje na projektima na kojima radi.

select radnik.mbr, radnik.prezR, radnik.imeR, count(*), sum( radi.brojCas) from Radnik, Radi where radnik.mbr=radi.mbr group by radnik.mbr;

  1. Za one radnike koji rade na više projekata izlistati matični broj i ukupan broj projekata na kojima rade.

select mbr, count(idP) from Radi group by mbr having count(idP)>1;

  1. Izlistati nazive projekata i ukupan broj sati angažovanja na projektima na kojima je ukupno angažovanje veće od 150 časova.

select nazivP, sum(brojCas) from Projekat, Radi where projekat.idP=radi.idP group by projekat.idP having sum(brojCas)>150;

UGNJEŽDENI UPITI

  1. Izlistati matični broj, prezime, ime i platu radnika koji imaju platu veću od prosečne, u opadajućem redosledu plate.

select mbr, prezR, imeR, plt from Radnik where plt>( select avg(plt) from Radnik) order by plt desc;

  1. Izlistati nazive i oznake projekata na kojima je prosečno angažovanje veće od prosečnog angažovanja na svim projektima.

select projekat.nazivP, projekat.idP from Projekat, Radi where projekat.idP= radi.idP group by projekat.idP having avg(brojCas)>( select avg(brojCas) from radi);

  1. Prikazati prezimena, imena i platu radnika koji nisu angažovani ni na jednom projektu.

select prezR, imeR, plt from Radnik where mbr not in ( select distinct mbr from Radi)

  1. Izlistati nazive projekata na kojima radi bar jedan radnik koji radi i na projektu sa ozn. 2.

select projekat.nazivP from Projekat where idP in ( select idP from Radi where mbr in ( select mbr from Radi where idP=2));

  1. Izlistati prezimena i imena radnika koji rade na projektu sa oznakom 1 (koristeći ugnježdeni upit).

select prezR, imeR from Radnik where mbr in ( select mbr from Radi where idP=1);

update Projekat set nazivP='Novi projekat' where idP=5;

  1. Izbrisati radnika sa matičnim brojem 1111.

delete from Radnik where mbr=1111;