You are on page 1of 10

L3

SELECT LAST_NAME, FIRST_NAME

FROM EMPLOYEES

WHERE LAST_NAME LIKE 'A%'

ORDER BY FIRST_NAME

SELECT LAST_NAME, FIRST_NAME

FROM EMPLOYEES

WHERE LAST_NAME NOT LIKE 'A%'

ORDER BY EMPLOYEE_ID

SELECT LAST_NAME, FIRST_NAME

FROM EMPLOYEES

WHERE MANAGER_ID BETWEEN 118 AND 120

ORDER BY department_id, last_name;

SELECT LAST_NAME, FIRST_NAME

FROM EMPLOYEES

WHERE MANAGER_ID not BETWEEN 118 AND 120

ORDER BY department_id desc, last_name desc;

select *

from locations

where city not in ('Tokyo','Geneva')

order by state_province nulls last

select job_title, max_salary-min_salary dif

from jobs

order by dif
select last_name ||' '||first_name as angajati

from employees

where job_id=some('IT_PROG','FI_ACCOUNT')

select last_name ||' '||first_name as angajati

from employees

where COMMISSION_PCT IS NOT NULL

SELECT DEPARTMENT_ID

FROM EMPLOYEES

WHERE MANAGER_ID IS NOT NULL

select last_name ||' '||first_name as angajati

from employees

where SALARY <ALL(4000, 5000, 3000)

select CITY, STATE_PROVINCE

from locations

where city !=ALL('Tokyo','Geneva')

order by state_province DESC

select CITY

from locations

WHERE COUNTRY_ID !=ALL('US', 'CA')

SELECT CONCAT(concat(first_name,' '),( last_name)) as angajati

from employees

where substr(last_name,1,1)='A'

SELECT JOB_TITLE
FROM JOBS

WHERE SUBSTR(JOB_TITLE,1,2)='Ad'

select CONCAT(concat(first_name,' '),( last_name)) as angajati

from employees

where length(first_name)=5

order by employee_id

select CONCAT(concat(first_name,' '),( last_name)) as angajati, salary, hire_date

from employees

where hire_date LIKE '%98' and salary >4000

SELECT UPPER(last_name) || ' ' || UPPER(first_name) "Nume",

TO_CHAR(hire_date, ' DAY dd.MM.YY') "DataAng"

FROM Employees

WHERE department_id = 50 or department_id = 100;

SELECT UPPER(last_name) || ' ' || UPPER(first_name) "Nume",

TO_CHAR(hire_date, ' DAY') DATAANG

FROM Employees

WHERE DATAAND='VINERI'???????

SELECT UPPER(JOB_TITLE),LOWER(JOB_ID), '$'MAX_SALARY

FROM JOBS

ORDER BY MAX_SALARY

SELECT UPPER(last_name) || ' ' || UPPER(first_name) "Nume", COMMISSION_PCT*500 BONUS

FROM EMPLOYEES

WHERE substr(last_name,1,1)='S' DE INLOCUIT CU 0


L4

2.5.4 Afişaţi numărul de oraşe distincte care sunt înregistrate pentru fiecare ţară.(Locations)
Ordonaţi datele în funcţie de numărul de oraşe.

select country_id, count(city)

from locations

group by country_id

order by count(city)

2.5.5 Afişaţi departamentele în care salariul maxim este mai mare dacât 10000.

select department_id, max(salary)

from Employees

GROUP BY department_id

HAVING max(salary)>10000

2.5.6 Afişaţi numărul de angajati cu comision pentru fiecare job.

select count(COMMISSION_PCT)

from employees

group by job_id;

2.5.7 Afişaţi numărul de departamente care au manager.

select count(manager_id)

from departments

2.5.8 Afişaţi media rotunjită a salariului minim pentru fiecare tip de job.

select Round(avg(min(salary)))

from employees

group by job_id;

2.5.9 Afişaţi salariul maxim şi data primei angajări pentru fiecare departament şi fiecare job.
Ordonaţi datele după data afişată.

select department_id, job_id, max(salary), min(hire_date)

from employees
group by department_id, job_id

order by min(hire_date);

2.5.10 Afişaţi numărul de angajaţi si salariul maxim pentru fiecare an in parte.

select count(employee_id), max(salary), to_char(hire_date,'yyyy')

from employees

group by to_char(hire_date,'yyyy');

2.5.11 Afişaţi numărul de angajaţi si salariul maxim pentru fiecare an in parte, pentru anii în care
acest număr a fost mai mare decât 10.

select count(employee_id), max(salary), to_char(hire_date,'yyyy')

from employees

group by to_char(hire_date,'yyyy')

having count(employee_id)>10;

3.1.17 Afişaţi angajaţii cu salariul mai mare decât o valoare dată la momentul execuţiei.

select last_name, first_name

From employees

Where salary>&val;

L5

1. Afişaţi numele, numărul şi numele job-ului pentru toti angajaţii.


SELECT first_name , last_name, employee_id, job_title
FROM jobs j, employees e
where j.job_id=e.job_id;

2. Afişaţi numele, numărul şi numele job-ului pentru toti angajaţii cu job-ul Programmer.

SELECT first_name , last_name, j.job_title


FROM jobs j, employees e
where j.job_id=e.job_id and j.job_title='Programmer';
3. Afişaţi numele angajaţilor, numele departamentului în care lucrează şi numele job-ului.

SELECT first_name , last_name, department_name, job_title


FROM jobs j, employees e , departments d
where d.department_id=e.department_id and j.job_id=e.job_id;

4. Scrieti o cerere care sa intoarca numele, numarul şi numele departamentului şi job-ul tuturor
celor care lucreaza în Seattle.

SELECT last_name, first_name, d.department_id, department_name, job_title, l.city


FROM jobs j, employees e , departments d, locations l
where d.department_id=e.department_id and j.job_id=e.job_id and
d.location_id=l.location_id and l.city='Seattle';

5. Afişaţi toate locaţiile (oraşul şi ţara) din Europa.

SELECT l.city, c.country_name, r.region_name


from locations l, countries c, regions r
where l.country_id=c.country_id and c.region_id=r.region_id and r.region_name like 'Europe'
6.

7. Afişaţi numele departamentelor, numărul de angajaţi şi salariul mediu pentru fiecare


departament.

SELECT department_name, count(employee_id), AVG(salary)


from employees e, departments d
where e.department_id=d.department_id
group by department_name

8. Gasiti care sunt numele acelor departamente în care salariul maxim este mai mare dacat 10000.

SELECT department_name, max(salary)


from employees e, departments d
where e.department_id=d.department_id
group by department_name
Having max(salary)>10000;

9.
10.
11. Scrieţi o interogare care afişează numele şi job-ul angajaţilor care lucrează în acelaşi
departament cu angajatul cu numele Luis Popp.

SELECT e1.last_name, e1.first_name, e1.job_id


from employees e, employees e1
where e.department_id=e1.department_id and e.last_name='Popp' and e.first_name='Luis'

L6

1. Afișați angajații care au același job cu Luis Popp.

SELECT last_name ||' ' || first_name as Angajat

from employees

where job_id =

(select job_id

from employees

where first_name='Luis' AND last_name='Popp');

2. Afișați angajații care s-au angajat la aceeași dată cu Luis Popp sau după acesta.

SELECT last_name ||' ' || first_name as Angajat

from employees

where hire_date >=

(select hire_date

from employees

where first_name='Luis' AND last_name='Popp');

3. Afișați angajații care câștigă mai mult decât oricare funcționar (CLERK).

Select last_name || ' ' || first_name as Angajat

from employees

where salary > ANY

(Select salary
from employees

where job_id like '%CLERK' )

4. Afișați numele departamentelor din Seattle.


Select department_name

from departments

where location_id =

(Select location_id

from locations

where city='Seattle' )

5. Afișați numele departamentelor aflate în aceeași locație cu departamentul Finance.


Select department_name

from departments

where location_id =

(Select location_id

from departments d

where d.department_name='Finance' );

6. Afișați angajații care lucrează într-un departament cu măcar un angajat al cărui nume începe cu
litera A.
Select last_name, first_name, department_id

from employees

where department_id = ANY

(select department_id

from employees

where last_name like 'A%')

7. Afișați angajații care au subordonați (sunt manageri).


Select last_name, first_name

from employees

where employee_id = ANY

(select manager_id

from employees );
8.

Select last_name, first_name

from employees

where employee_id != all

(select manager_id

from employees

where manager_id is not null )

8b. Afișați angajații care nu au subordonați (nu sunt manageri).

Select last_name, first_name

from employees

where employee_id not in

(select manager_id

from employees

where manager_id is not null )

14. Afișați angajații care câștigă salariul maxim din departamentul în care lucrează.

SELECT last_name, salary, department_id, salary

FROM employees e

WHERE salary =

(SELECT max(salary)

FROM employees

WHERE department_id=e.department_id);

15. Afișați angajatii care au salariul mai mare decât jumătate din salariul maxim setat pentru tipul
lor de job.

SELECT last_name, salary, department_id, salary

FROM employees e

WHERE salary>
(SELECT max_salary/2

FROM jobs j

WHERE e.job_id=j.job_id);

You might also like