trecicas_vezbi_0
DESCRIPTION
baze podatatakaTRANSCRIPT
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 1/42
Fakultet tehničkih nauka, DRA, Novi SadPredmet:
Baze podataka 1
Mr Slavica Aleksić
Milan Čeliković
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 2/42
• Baza podataka (db2011):
– Studentska korisnička šema user schemapod nazivom Exxxxx
•
• Password: ftn
2
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 3/42
• o ac po re n za one ovan e na azu
podataka (db2011) – Host Name:
• 192.168.7.202 (za Računarski centar)
• . . . za u on cu• 192.168.5.1 (za ITCS učionicu)
• - . .
– Port Number: 1521
– ,• db2011 (sve laboratorije osim ITCS)
• orcl (za ITCS učionicu)
3
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 4/42
• +
• SQL Develo er – Local Disk C/Program Files/ sqldeveloper ->
SQLDevelo er:
• sqldeveloper.exe
• Materijali
– – www.acs.uns.ac.rs
4
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 5/42
ra n r, me, rz, e , , o , re ,
{Mbr}),projekat({Spr, Ruk, Nap, Nar}, {Spr}),
rad ro S r Mbr Brc S r Mbr
,
projekat[Ruk] radnik[Mbr],ra pro r ra n r ,
radproj[Spr] projekat[Spr].
5
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 6/42
• -
• Ime - ime radnika-• Sef - maticni broj direktno nadredjenog rukovodioca
- radnika
• Plt - mesecni iznos plate radnika• God - Datum rodjenja radnika• Pre – godišnja premija na platu radnika
e e a r, me, rz ne sme u mat nu vre nost.Plata ne sme biti manja od 500
6
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 7/42
• Spr - sifra projekta
• Ruk - rukovodilac ro ekta
• Nap - naziv projekta
• ar - naruc ac pro e a
Obeležja Spr i Ruk ne smeju imati null
, jedinstvenu vrednost
7
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 8/42
Upit sa višestrukom upotrebom
iste tabele
• Prikazati mbr, ime, prz, plt radnika koji
zarađu u više od radnika sa matičnimbrojem 40.
select r.mbr, r.prz, r.ime, r.plt
from radnik r, radnik r1
where r. lt>r1. lt and r1.mbr=40
8
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 9/42
Upit sa višestrukom upotrebom
iste tabele
• Prikazati imena, prezimena i plate radnika
ko i zarađu u bar 1000 dinara man e odrukovodioca projekta na kom radnik radi.
select r1.ime, r1.prz, r1.plt, p.nap from
ra n r , ra n r , pro e a p, ra pro rp
where r1.mbr=rp.mbr and rp.spr=p.spr andp.ruk=r2.mbr and r1.plt+1000<r2.plt;
9
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 10/42
• r aza m r, me, prz, p ra n a e ro sa
angažovanja na nekom projektu veći od
projektu.
select distinct r.mbr, ime, prz, plt, brc
rom ra n r, ra pro rp
where r.mbr=rp1.mbr andrp1.brc>(select avg(brc) from radproj rp2
where rp2.spr=rp1.spr);
10
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 11/42
EXISTS(<lista_vrednosti>) –
<lista vrednosti> ni e razan sku _ vrednosti
_ –<lista_vrednosti> je prazan skup vrednosti
11
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 12/42
• Ko je najstariji radnik? (exist)
select ime, prz, god
from radnik r
(select mbr from radnik r1where r1.god<r.god);
12
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 13/42
• Izlistati mbr, ime, prz radnika koji ne rade na
projektu sa šifrom 10. (ne postoji radnik saprojekta 10 koji je jednak traženom radniku)
select mbr, ime, prz
where not exists
(select * from radproj rp
where r.mbr=rp.mbr and rp.spr=10);
13
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 14/42
• .postoji projekat na kom rade)
select mbr, ime, prz
from radnik r
(select * from radproj rp where r.mbr=rp.mbr);
, ,
from radnik r
where mbr not inse ec rp.m r rom ra pro rp
where r.mbr=rp.mbr);
14
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 15/42
• .postoji projekat kojim rukovodi taj radnik)
select mbr, ime, prz
from radnik r
w ere no ex s s(select * from projekat where mbr=ruk);
select mbr, ime, prz
from radnik r where mbr not in
(select ruk from projekat where mbr=ruk);
15
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 16/42
-• Ko je najstariji rukovodilac projekata?
select distinct mbr, ime, prz, god
from radnik r, projekat pwhere r.mbr= .ruk and not exists
(select mbr from radnik r1, projekat p1
. . . .
16
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 17/42
• z s a m r, me, prz ra n a o ra e na
projektu sa šifrom 20 ili im je plata veća od
where mbr inselect mbr from rad ro where s r=20
union
select mbr ime rz from radnik where plt>(select avg(plt) from radnik);
17
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 18/42
• z s a m r, me, prz ra n a o ra e na
projektu sa šifrom 20 ili im je plata veća od
where mbr inselect mbr from rad ro where s r=20
union all
select mbr ime rz from radnik where plt>(select avg(plt) from radnik);
18
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 19/42
• z s a m r, me, prz ra n a e prez me
počinje na slovo M ili slovo R i mbr, ime,prz radnika čije prezime počinje na slovoM ili slovo P.
select mbr, ime, prz from radnikwhere rz like 'M%‘ or rz like ‘R%‘
INTERSECT
, ,where prz like 'M%‘ or prz like ‘P%‘
19
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 20/42
• z s a m r, me, prz ra n a e prez me
počinje na slovo M ili slovo R i mbr, ime,prz radnika čije prezime počinje na slovoM ili slovo P.
select mbr, ime, prz from radnikwhere rz like 'M%‘ or rz like ‘R%‘
MINUS
, ,where prz like 'M%‘ or prz like ‘P%‘
20
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 21/42
• Prikazati ime i prz radnika koji rade na
ro ektu sa šifrom 30.
se ec me, przfrom radnik natural oin rad ro
where spr=30;
21 /
.
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 22/42
• Prikazati ime i prz radnika koji rade na
ro ektu sa šifrom 30.
se ec me, przfrom radnik r inner oin rad ro r
on r.mbr=rp.mbr
where spr=30;
22 /
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 23/42
•
• Desno (RIGHT)
• Potpuno (FULL)
23 /
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 24/42
Spoljno spajanje (LEFT
OUTER)• Prikazati mbr, ime i prz radnika i šifre projekata
na kojima rade. Prikazati, takođe, iste podatke iza radnike koji ne rade ni na jednom projektu, pričemu za šifru projekta treba, u tom slučaju,
prikazati nedostajuću vrednost.
select r.mbr,ime, prz, spr
on r.mbr=rp.mbr;
24 /
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 25/42
Spoljno spajanje (LEFT
OUTER)• Prikazati mbr, ime i prz svih radnika i nazive
projekata kojima rukovode. Ukoliko radnik nerukovodi ni jednim projektom ispisati: nerukovodi projektom.
select r.mbr ime rz nvl na 'ne rukovodi projektom') Projekat
on r.mbr=p.ruk;
25 /
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 26/42
Spoljno spajanje (RIGHT
OUTER)• r aza naz ve sv pro e a a m r ra n a o
rade na njima. Ukoliko na projektu ne radi ni.
se ec nv rp.m r, r ra n a , napfrom radproj rp right outer join projekat p
on rp.spr=p.spr;
select nvl(rp.mbr, 0) "Mbr radnika", nap
from rad ro r ro ekat
26 /
where rp.spr(+)=p.spr;
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 27/42
Spoljno spajanje (FULL
OUTER)
" ". , ,
from radproj rp full outer join projekat p
on rp.spr=p.spr;
27 /
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 28/42
• Prikazati matične brojeve, imena i
rezimena radnika za edno sa šiframaprojekata na kojima rade. Prikazati,
,
rade ni na jednom projektu, pri čemu za, ,
prikazati nedostajuću vrednost.
28 /
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 29/42
SELECT r.Mbr, r.Prz, r.Ime, rp.Spr
,WHERE r.Mbr = rp.Mbr (+)
. , . , . , .
FROM Radnik r LEFT OUTER JOINRadproj rp ON r.Mbr = rp.Mbr
29 /
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 30/42
• Prikazati za sve radnike i projekte na
ko ima rade Mbr Prz Ime S r i Na . Zaradnike koje ne rade ni na jednom
, , ,
dok za vrednosti obeležja Spr i Nap treba" ", , .
Urediti izlazni rezultat saglasno rastućimvrednostima obeležja Mbr.
30 /
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 31/42
SELECT r.Mbr, r.Prz, r.Ime, NVL(p.Spr, 0) AS Spr,NVL(p.Nap, 'Ne postoji') AS Nap
a n r, a pro rp, ro e a p
WHERE r.Mbr = rp.Mbr (+) AND rp.Spr = p.Spr (+)
r
r. r, r. rz, r. me, p. pr, pr,NVL(p.Nap, 'Ne postoji') AS Nap
a n r a pro rpr.Mbr = rp.Mbr LEFT OUTER JOIN Projekat p ON rp.Spr=
31 /
.
ORDER BY Mbr
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 32/42
• Prikazati imena i prezimena svih radnika i
rezimena n ihovih šefova ako ih ima u. Ako nema šefa ispisati: nema sefa.
select r1.ime, r1.prz "Radnik", nvl(r2.prz,'Nema sefa') Sef
on r1.sef=r2.mbr
32 /order by r1.prz;
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 33/42
• INSERT
•• UPDATE
33
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 34/42
• INSERT – dodavanje nove torke
INSERT INTO <naziv_tabele>
< s a_o e e a(<lista_konstanti) | SELECT …
34
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 35/42
• – o avan e nove or e
insert into Radnik (mbr, ime, prz, plt,' ' ' ', , , ,
30000, null, '18-aug-71'); , ,
values (‘70', 'P1', 201);
insert into RadProj (mbr, spr, brc)values (201, '10', 5);
35
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 36/42
• DELETE – brisanje postojećih torki
DELETE FROM <naziv_tabele>
[WHERE (<uslov_selekcije>)]
36
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 37/42
• DELETE – brisanje postojećih torki
delete radnik;
=
37
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 38/42
• UPDATE – modifikacija postojećih torki
UPDATE <naziv_tabele>
SET <obeležje>= <aritm_izraz><obelež e>= <aritm izraz> _
[WHERE (<uslov_selekcije>)]
38
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 39/42
• – mo ac a pos o e or
update radnik
* .
update radnik
= * .where mbr = 201;
39
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 40/42
• mora po e s ovom,
• mora biti između 1 i 30 znakova dužine• mora sadržati samo velika i mala slova,
, _, ,
• ne sme se poklapati sa nazivom nekog,
• ne sme biti rezervisana reč Oracleservera.
• Nazivi nisu case sensitive.
40
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 41/42
CREATE TABLE [šema.]<naziv_tabele>
(<naziv_kolone> <tip_podatka> [DEFAULTizraz] [, ...]);
• šema – poklapa se sa nazivom korisnika•
– Specificira se predefinisana vrednost za kolonu, koja
izostavi vrednost za tu kolonu
41
7/18/2019 TreciCas_Vezbi_0
http://slidepdf.com/reader/full/trecicasvezbi0 42/42
– VARCHAR2(size) niz karaktera promenljive dužine, maksimalne dužine size;
minimalna dužina je 1, maksimalna je 4000 – CHAR(size) Niz karaktera fiksne dužine od size
bajtova; default i minimalna dužina je 1,maksimalna dužina je 2000
– NUMBER s bro uku no bro a cifara od če a e s cifaraiza decimalnog zareza; p može imati vrednosti
od 1 do 38 – DATE vrednosti za vreme i datum – LONG niz karaktera romenl ive dužine do 2 GB – CLOB Karakter do 4 GB – BLOB
– BFILE binarni podaci smešteni u eksternom fajlu do 4 GB – e ns vena a resa vrs e u a e
42