Laboratorul  nr. 3

Expresii si functii sistem

    Functii pentru siruri de caractere

    Functii pentru valori numerice

    Functii pentru date calendaristice

    Functii de conversie dintr-un tip in altul

    Functii generale

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 
ST_MAN 
IT_PROG 
Nici unul din cele  de mai sus 


 B 
 C 
 0 

 

6. Afisati numele, job-ul,numarul si numele departamentului pentru toti angajatii care lucreaza in Toronto.
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.