Expresii si functii sistem
Expresii conditionale. Furnizeaza logica
unei structuri IF-THEH-ELSE într-o instructiune SQL.Se utilizeaza doua
metode:
Functia DECODE
Expresia CASE
Interogari complexe asupra
unui singur tabel: functii agregat, gruparea si
ordonarea inregistrarilor
Regasirea datelor din mai multe tabele.
Tipuri de jonctiuni
Echijonctiunea
Theta-jonctiunea (non echijonctiune)
Jonctiunea
externa
Auto-jonctiunea (self join)
Intrebari
1. Server-ul Oracle permite si alte functii de grup in plus fata de standardul
ANSI SQL?
2. Exista vreo
diferenta intre clauzele WHERE si HAVING? Pot ele exista impreuna
intr-o aceeasi declaratie?
Exercitii
1. Utilizati clientul SQL PLUS pentru a va conecta la server-ul ORACLE.
Folositi urmatoarele informatii de conectare:
user: hr
pass: oracletest
host name: oracle09
2. Scrieti o
interogare care sa afiseze numele angajatilor cu prima litera
majuscula si restul litere mici, precum si lungimea fiecarui nume pentru
angajatii al caror nume incepe cu una din literele "J",
"M", "A". Denumiti fiecare coloana intr-un mod
corespunzator. Sortati rezultatul dupa nume.
3. Pentru fiecare angajat afisati numele si calculati numarul de
luni scurse de la data angajarii pana la data curenta. Denumiti
coloana corespunzatoare "luni lucrate". Ordonati
rezultatul ascendent dupa lunile lucrate.
4. Scrieti o interogare care să afiseze urmatoarele informatii:
Last_name primeste salary lunar, dar doreste 3*salary.
Etichetati coloana rezultat ca "Visul angajatului".
5. Utilizând expresiile conditionale scrieti o interogare care sa
afiseze rangul tuturor angajatilor pe baza valorilor din coloana
JOB_ID astfel:
JOB_ID |
Rang |
AD_PRES
|
A
|
6. Afisati
numele, job-ul,numarul si numele departamentului pentru toti angajatii care
lucreaza in
7. Scrieti o interogare are afisaza numele si job-ul angajatilor care lucreaza
in acelasi departament cu angajatul cu numele Luis Popp.
8. Gasiti numele si salariul fiecarui angajat care este subordonat managerului
cu numele King.
9 Gasiti care sunt numele acelor departamente in care salariul maxim este mai
mare dacat 10000 .
10.Afisati numele,
salariul si comisionul pentru toti angajatii care primesc comision.
Ordonati datele in ordinea descendenta a salariului si a
comisionului.
11. Afisati identificatorii managerilor si salariul celui mai slab
platit angajat al fiecaruia dintre manageri. Excludeti orice
persoana care nu este arondata unui manager.Excludeti de asemenea, orice grup
al cărui salariu minim este cel mult 6000. Ordonati datele la iesire
descendent dupa salariul minim.
12. Afisati minimul, maximul, media si suma salariilor pentru
fiecare tip de job. Etichetati coloanele in mod corespunzator.
13. Scrieti o interogare care sa afiseze numele si identificatorii
angajatilor precum si numele si identificatorul managerului caruia
ii este subordonat fiecare. Etichetati coloanele astfel: "Angajat","
Marca_ang"," Manager", " Marca_man". Salvati
interogarea intr-un script.
14. Modificati scriptul creat anterior astfel incat sa afiseze toti angajatii,
chiar daca acestia nu sunt arondati unui manager.