Sisteme de Gestiune a Bazelor de Date - 7

Imagine preview
(9/10 din 7 voturi)

Acest curs prezinta Sisteme de Gestiune a Bazelor de Date - 7.
Mai jos poate fi vizualizat un extras din document (aprox. 2 pagini).

Arhiva contine 1 fisier doc de 5 pagini .

Profesor: Munteanu Mihaela

Iti recomandam sa te uiti bine pe extras si pe imaginile oferite iar daca este ceea ce-ti trebuie pentru documentarea ta, il poti descarca.

Fratele cel mare te iubeste, acest download este gratuit. Yupyy!

Domenii: Calculatoare, Alte Domenii

Extras din document

Seminar 7

1) Jonctiuni externe

Permit regasirea inregistrarilor comune si in plus fata de jonctiunea de egalitate si a celor care se regasesc doar intr-o singura tabela.

Jonctiunea se poate realiza precizand in dreptul legaturii dintre tabele a semnului (+), de exemplu conditia: tabela_A.cheie_primara=tabela_b.cheie_externa(+) va returna inregistrarile comune si a celor care apartin doar tabelei A..

Exemplu:

Sa se insereze in tabela produse 2 inregistrari noi astfel:

insert into produse values(777, 'cafea', 'buc', 4000);

insert into produse values(888, 'ceai', 'buc', 3000);

Sa se afiseze produsele comandate impreuna cu cele care nu se regasesc pe nici o comanda:

SELECT p.codprodus, p.denprodus, rc.cant, rc.pret

FROM produse p, rindcom rc

WHERE p.codprodus = rc.codprodus (+)

Rezultatul este prezentat in figura urmatoare:

2) Realizarea interogarilor pe baza unor conditii

Functia DECODE – este utilizata pentru calcularea si returnarea unor expresii in functie de anumite conditii de egalitate.

Sintaxa este:

DECODE(VARIABILA, conditie1, expresie1, conditie2, expresie2, ….., conditie_n, expresie_n, valoare n+1 implicita)

Expresia CASE – este utilizata pentru calcularea si returnarea unor expresii in functie de anumite conditii diverse in care se pot utiliza operatorii de comparative, nu numai cel de egalitate.

Sintaxa este:

CASE [VARIABILA]

WHEN conditie1 THEN expresie1

WHEN conditie2 THEN expresie2

WHEN conditie_n THEN expresie_n

ELSE valoare n+1 implicita

END

Sau daca se utilizeaza comparatii pe variabile sau campuri diferite se poate apela la varianta urmatoare:

CASE

WHEN VARIABILA conditie1 THEN expresie1

WHEN VARIABILA conditie2 THEN expresie2

WHEN VARIABILA conditie_n THEN expresie_n

ELSE valoare n+1 implicita

END

Exemple:

1)Sa se calculeze comisionul agentilor in functie de pozitia (functia) ocupata:

- 0.1% din valoarea comenzilor sale daca functia este ‘contabil’

- 0.2% din valoarea comenzilor sale daca functia este ‘economist’

- 0.3% din valoarea comenzilor sale daca functia este ‘director’

Pentru celelalte functii comisionul va fi 0.

Select a.numeagent, a.functia,

case when lower(a.functia) ='director' then 0.3

when lower(a.functia)='economist' then 0.2

when lower(a.functia)='contabil' then 0.1

else 0 end comision

from agenti a

Daca se aplica acest comision la valoarea comenzilor (sum(cant*pret)) interogarea devine:

Select a.numeagent, a.functia,

(case when lower(a.functia) ='director' then 0.3

when lower(a.functia)='economist' then 0.2

when lower(a.functia)='contabil' then 0.1

else 0 end)*sum(r.cant*r.pret) valoare_comision

from agenti a, comenzi c, rindcom r

where a.codagent=c.codagent

and c.nrcom=r.nrcom

group by a.numeagent, a.functia

Fisiere in arhiva (1):

  • Sisteme de Gestiune a Bazelor de Date - 7.doc

Alte informatii

ASE Cibernetica