You are on page 1of 6

Subiecte ORACLE 15 ianuarie 2008

Subiectul nr. 1 Modificai salariile angajailor ce figureaz n tabela F_STAFFS adugnd un bonus de 0.50 $ la creterea de 5% propus de manager. Prezentai diagrama de tabel corespunztoare tabelei F_STAFFS. REzolvarea subiectului 1.
SELECT last_name, salary*.05 + .50 FROM f_staffs;

Subiectul nr. 2 Sue, Bob i Monique sunt angajaii lunii. Utiliznd tabela F_STAFFS, afiai un tabel n care numele lor s apar astfel:
Super Star ***Sue***Sue*** ***Bob***Bob*** ***Monique***Monique***

Rezolvarea subiectului 2 SELECT '***'||first_name||'***'||first_name||'***' AS "Super Star" FROM f_staffs Subiectul nr.3 Utiliznd cuvintele "Oracle," "Internet," i "Academy," afiai prin comand unic mesajul: The Best Class Oracle Internet Academy Rezolvarea subiectului 3. SELECT 'Oracle' "The", 'Internet' "Best", 'Academy' "Class" FROM DUAL Subiectul nr.4 Care este poziia caracterului " I " n "Oracle Internet Academy"? Rezolvarea subiectului 4. SELECT INSTR('Oracle Internet Academy', 'I') FROM DUAL Subiectul nr.5 Aplicai asupra irul de caractere "Oracle Internet Academy", acele funcii care i comenzi care s-l transforme n: Oracle$$$Internet$$$Academy Rezolvarea subiectului 5. SELECT RPAD('Oracle',9,'$')||RPAD('Internet',11,'$')||'Academy' FROM DUAL

Subiectul nr.6 Realizai un raport cu informaiile din cmpurile last_name i salary pentru acei angajai din tabela EMPLOYEES al cror employee_id este cuprins ntre valorile 100 i 200. Includei o a treia coloan cu valoarea noului salariu al angajailor obinut prin mprire la 1.55, rezultat rotunjit apoi la dou zecimale. Rezolvarea subiectului 6. SELECT last_name, salary, ROUND(salary/1.55,2) FROM EMPLOYEES WHERE employee_id BETWEEN 100 AND 102 Subiectul nr.7 Afiai informaiile din cmpurile last_name i salary pentru acei angajai din tabela EMPLOYEES al cror employee_id este egal cu 100. Includei o a treia coloan cu valoarea noului salariu al angajailor obinut prin creterea cu 5.33%, rezultat trunchiat apoi la dou zecimale. Rezolvarea subiectului 7. SELECT last_name, salary, TRUNC(salary*0.0533,2) FROM EMPLOYEES WHERE employee_id=100 Subiectul nr.8 Afiai informaiile din cmpurile last_name pentru acei angajai din tabela EMPLOYEES care au salariul (salary) multiplu de 3. Prezentai i diagrama de tabel corespunztoare tabelei EMPLOYEES . Rezolvarea subiectului 8. SELECT last_name FROM EMPLOYEES WHERE MOD(salary,3)=0 Subiectul nr.9 ncheiai studiul pe care l-ai avut ca tem n ultima zi a acestei luni este indicaia profesorului. Afiai numele respectivei zile etichetat cu Deadline. Rezolvarea subiectului 9. SELECT LAST_DAY(SYSDATE) "Deadline" FROM DUAL Subiectul nr.10 Listai zilele aniversare pentru toi angajaii firmei Global Fast Food n formatul Month DD, YYYY. Eliminai zerourile aferente. Prezentai diagrama de tabel corespunztoare tabelei F_STAFFS. Rezolvarea subiectului 10. SELECT last_name, birthdate, TO_CHAR(birthdate,'MONTH DD YYYY') FROM F_STAFFS Subiectul nr.11 2

Pat Fay este angajatul care a primit o majorare de salariu de $2,000 . Afiati pentru ea prenumele, salariul curent, precum i noul salariu etichetat cu aliasul New Salary. Pentru ambele coloane salariu, modul de afiare s conin semnul $ i rezumai salariul la dou zecimale. Rezolvarea subiectului11. SELECT first_name, last_name, TO_CHAR(salary,'$99999.99'), TO_CHAR(salary+2000,'$99999.99') "AS New Salary" FROM EMPLOYEES WHERE last_name='Fay' Subiectul nr.12 Listai o situaie care s prezinte cmpurile name, start_date, i end_date cu promoiile produselor firmei Global Fast Foods din tabela F_PROMOTIONAL_MENUS. Dac data final a ofertei este data curent, actualizai end_date prin mesajul end in two weeks", iar pentru produsele fr dat final trecei data curent. Rezolvarea subiectului 12. SELECT name, start_date, NVL2(end_date,'end in two weeks',SYSDATE) FROM F_PROMOTIONAL_MENUS Subiectul nr.13 Utilizai baza de date EMPLOYEES pentru a afia cmpurile department_id, last_name, salary i o nou coloan cu aliasul "New Salary" ale crei valori ndeplinesc condiiile: dac department_id i=10 atunci salary= 1.25 * salary dac department_id i=90 atunci salary= 1.5 * salary dac department_id i=130 atunci salary= 1.75 * salary pentru restul departamentelor salariul rmnnd neschimbat. Rezolvarea subiectului 13 SELECT department_id, last_name, salary, CASE department_id WHEN 10 THEN 1.25*salary WHEN 90 THEN 1.5*salary WHEN 130 THEN 1.75*salary ELSE salary END AS "New Salary" FROM EMPLOYEES Subiectul nr.14 Afiai salariul mediu pentru angajaii firmei Global Fast Food nregistrai n baza de date F_STAFFS
cu manager_id=19.

Rezolvarea subiectului 14
SELECT manager_id, AVG(salary) FROM f_staffs WHERE manager_id=19 GROUP BY manager_id;

Subiectul nr.15 3

n cte locaii diferite(loc_type) i desfoar activitatea firma DJ on Demand ?. Prezentai i diagrama de tabel corespunztoare tabelei D_VENUES. Rezolvarea subiectului 15
SELECT COUNT (DISTINCT loc_type) FROM d_venues;

Subiectul nr.16 Listai numele (last_name) tuturor angajailor al cror salariu este identic cu salariul minim pe ntreprindere. Prezentai i diagrama de tabel corespunztoare tabelei EMPLOYEES. Rezolvarea subiectului 16
SELECT last_name FROM employes WHERE salary = ANY (SELECT MIN (salary) FROM employees GROUP BY department_id)

Subiectul nr.17 Cum se numete este angajatul cu cel mai mic salariu din firm ?. Prezentai diagrama de tabel corespunztoare tabelei F_STAFFS, cea care conine informaia cerut. Rezolvarea subiectului 17
SELECT first_name, last_name FROM f_staffs WHERE salary = (SELECT min(salary) FROM f_staffs)

Subiectul nr.18 Preluai din tabela D_SONGS cmpurile: titlul melodiei (title), numele artistului (artist), iar din tabela D_TYPES descrierea lucrrii (description) pentru a lista informaii necesare unui fan. Rezolvarea subiectului 18 SELECT s.title, t.description, s.artist FROM D_SONGS s, D_TYPES t WHERE s.type_code=t.code Subiectul nr.19 Afiai numele tuturor angajailor (last_name), departamentul (department_id) din tabela EMPLOYEES dar i numele departamentului (department_name) din tabela DEPARTMENTS chiar dac exist i angajai pentru care nu este asignat un departament. Rezolvarea subiectului 19 SELECT e.last_name, e.department_id, d.department_name FROM EMPLOYEES e, DEPARTMENTS d WHERE e.department_id=d.department_id(+) Subiectul nr.20 Afiai angajaii din toate departamentele (department_name, department_id) din tabela DEPARTMENTS chiar dac n tabela EMPLOYEES ce conine numele angajailor (last_name) i departamentul (department_id) exist i departamente fr angajai. Rezolvarea subiectului 20 4

SELECT e.last_name, d.department_id, d.department_name FROM EMPLOYEES e, DEPARTMENTS d WHERE e.department_id(+)=d.department_id Subiectul nr.21 Realizai un cross-join pentru a afia toate departamentele (department_name) DEPARTMENTS i numele angajailor (last_name) din tabela EMPLOYEES. Rezolvarea subiectului 21 SELECT e.last_name, d.department_name FROM EMPLOYEES e CROSS JOIN DEPARTMENTS d Subiectul nr.22 Realizai un natural-join prin coloana location_id ntre tabelele DEPARTMENTS (department_name, department_id) i LOCATIONS ( location_id, city) pentru a afia numele i id-ul departamentului, id ul locaiei i oraul. Rezolvarea subiectului 22 SELECT d.department_id, d.department_name, location_id, l.city FROM DEPARTMENTS d NATURAL JOIN LOCATIONS l Subiectul nr.23 Realizai un natural-join prin coloana location_id ntre tabelele DEPARTMENTS (department_name, department_id) i LOCATIONS ( location_id, city) pentru a afia numele i id-ul departamentului, id ul locaiei i oraul. Restrngei lista doar la departamentele cu Id=20 i 50. Rezolvarea subiectului 23 SELECT d.department_id, d.department_name, location_id, l.city FROM DEPARTMENTS d NATURAL JOIN LOCATIONS l WHERE d.department_id IN (20, 50) Subiectul nr.24 Creai tabela Grad_Candidates dup modelul: din tabela

Confirmai crearea cu DESCRIBE. Rezolvarea subiectului 24 CREATE TABLE GRAD_CANDIDATES (STUDENT_ID NUMBER (6), LAST_NAME VARCHAR2(15),FIRST_NAME VARCHAR2(15),CREDITS NUMBER(3), GRADUATION_DATE DATE);

Subiectul nr.25 Fie tabela:


ID
12 9

MANAG MANAG FIRST_NA LAST_N BIRTHDAT SALA OVERTIM TRAININ STAFF_T MANAGER_ ER_ BU ER_TA ME AME E RY E_RATE G YPE ID DGET RGET
Sue Bob Doe Miller 01-07-1980 19-03-1979 6,75 10 10,25 1,5 Grill Order Taker 19 Cook 19 -

Inserai o nregistrare cu valorile (Id=19, First_name=Monique, Last_name=Miller, Birthdate=3003-1969Salarv=60, Overtime=Null,Training=Null, Staff_TVPE=Manager, Manager_Id=Null, Manager_buget=Null,Manager_Target=Null). Rezolvarea subiectului 25 INSERT INTO F_STAFFS VALUES(19,'MONIQUE','TUTTLE','30-031969',60,NULL,NULL,'MANAGER',NULL,NULL,NULL); Subiectul nr.26 Tabela F_STAFFS conine trei nregistrri. Monique Tuttle renun la slujb pentru a se ntoarce la colegiu.
FIRST_NA LAST_NAM ME E BIRTHDATE Sue Doe 01-07-1980 Bob Miller 19-03-1979 Monique Tuttle 30-03-1969 OVERT IME_ STAFF_TYP MANAGE SALARY RATE TRAINING E R_ID 6,75 10,25 Order Taker 19 10 ,75 Grill Cook 19 60 Manager 19 MANAGE MANAG R_BUDGE ER_TAR T GET -

ID 12 9 19

Dup tergerea nregistrrii tabela trebuie s arate astfel. Scriei comanda corespunztoare.
FIRST_NAM LAST_NA E ME BIRTHDATE Sue Doe 01-07-1980 Bob Miller 19-03-1979 MANA MANAGE MANA OVERTIM STAFF_TYP GER_I R_BUDG GER_T E_RATE TRAINING E D ET ARGET 10,25 Order Taker 19 ,75 Grill Cook 19 -

ID 12 9

SALARY 6,75 10

Rezolvarea subiectului 26 DELETE f_staffs WHERE ID = 19;

You might also like