trecicas_vezbi_0

42
7/18/2019 TreciCas_Vezbi_0 http://slidepdf.com/reader/full/trecicasvezbi0 1/42 Fakultet tehničkih nauka, DRA, Novi Sad Predmet: Baze podataka 1  Mr Slavica Aleksi ć Milan Čeliković  

Upload: jessica-powell

Post on 02-Mar-2016

12 views

Category:

Documents


0 download

DESCRIPTION

baze podatataka

TRANSCRIPT

Page 1: TreciCas_Vezbi_0

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ć

 

Page 2: TreciCas_Vezbi_0

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

Page 3: TreciCas_Vezbi_0

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

Page 4: TreciCas_Vezbi_0

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

Page 5: TreciCas_Vezbi_0

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

Page 6: TreciCas_Vezbi_0

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

Page 7: TreciCas_Vezbi_0

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

Page 8: TreciCas_Vezbi_0

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

Page 9: TreciCas_Vezbi_0

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

Page 10: TreciCas_Vezbi_0

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

Page 11: TreciCas_Vezbi_0

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

Page 12: TreciCas_Vezbi_0

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

Page 13: TreciCas_Vezbi_0

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

Page 14: TreciCas_Vezbi_0

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

Page 15: TreciCas_Vezbi_0

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

Page 16: TreciCas_Vezbi_0

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

Page 17: TreciCas_Vezbi_0

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

Page 18: TreciCas_Vezbi_0

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

Page 19: TreciCas_Vezbi_0

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

Page 20: TreciCas_Vezbi_0

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

Page 21: TreciCas_Vezbi_0

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 /

  .

Page 22: TreciCas_Vezbi_0

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 /

Page 23: TreciCas_Vezbi_0

7/18/2019 TreciCas_Vezbi_0

http://slidepdf.com/reader/full/trecicasvezbi0 23/42

 

• Desno (RIGHT)

• Potpuno (FULL)

23 /

Page 24: TreciCas_Vezbi_0

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 /

Page 25: TreciCas_Vezbi_0

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 /

Page 26: TreciCas_Vezbi_0

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;

Page 27: TreciCas_Vezbi_0

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 /

Page 28: TreciCas_Vezbi_0

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 /

Page 29: TreciCas_Vezbi_0

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 /

Page 30: TreciCas_Vezbi_0

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 /

Page 31: TreciCas_Vezbi_0

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

Page 32: TreciCas_Vezbi_0

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;

Page 33: TreciCas_Vezbi_0

7/18/2019 TreciCas_Vezbi_0

http://slidepdf.com/reader/full/trecicasvezbi0 33/42

 • INSERT

•• UPDATE

33

Page 34: TreciCas_Vezbi_0

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

Page 35: TreciCas_Vezbi_0

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

Page 36: TreciCas_Vezbi_0

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

Page 37: TreciCas_Vezbi_0

7/18/2019 TreciCas_Vezbi_0

http://slidepdf.com/reader/full/trecicasvezbi0 37/42

 • DELETE – brisanje postojećih torki

delete radnik;

37

Page 38: TreciCas_Vezbi_0

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

Page 39: TreciCas_Vezbi_0

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

Page 40: TreciCas_Vezbi_0

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

Page 41: TreciCas_Vezbi_0

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

Page 42: TreciCas_Vezbi_0

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