- •Раздел 1 Утилита sql*Plus, простые запросы выборки столбцов и строк
- •7839 King president 17-nov-81 5000 10
- •7900 James 950
- •7 Rows selected.
- •7 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •9 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •6 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •7369 Smith 800
- •Функции Oracle sql
- •9 Rows selected.
- •Раздел 3 Выборка данных из нескольких таблиц
- •20 Smith 800
- •30 James 950
- •10 Miller 1300
- •6 Rows selected.
- •6 Rows selected.
- •6 Rows selected.
- •8 Rows selected.
- •8 Rows selected.
- •14 Rows selected.
- •9 Rows selected.
- •9 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •6 Rows selected.
- •15 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •7 Rows selected.
- •Раздел 4 Другие команды языка манипулирования данными dмl и обработка транзакций
- •7902 Ford analyst 7566 03-dec-81 3000 20
- •7788 Scott analyst 7566 09-dec-82 3000 20
- •Раздел 5 Создание и изменение таблиц средствами ddl
- •Раздел 6 Другие объекты базы данных
- •7934 Miller 10
- •16 Rows selected.
20 Smith 800
30 James 950
10 Miller 1300
Q3_4
Список сотрудников отдела 30, получающих оклад больше минимального в отделе 20
SQL> select ename,sal,job,DEPTNO dept
from EMP
where DEPTNO=30 and
sal > any(select distinct sal from EMP
where DEPTNO=20)
order by sal,ename;
ENAME SAL JOB DEPTNO
---------- --------- --------- ---------
JAMES 950 CLERK 30
MARTIN 1250 SALESMAN 30
WARD 1250 SALESMAN 30
TURNER 1500 SALESMAN 30
ALLEN 1600 SALESMAN 30
BLAKE 2850 MANAGER 30
6 Rows selected.
Q3_5
Список сотрудников , получающих оклад больше любого, работающего в отделе 30
SQL> select ename,sal,job,DEPTNO dept from EMP
where sal > all(select distinct sal
from EMP where DEPTNO=30)
order by sal,ename;
ENAME SAL JOB DEPTNO
---------- --------- --------- ---------
JONES 2975 MANAGER 20
FORD 3000 ANALYST 20
SCOTT 3000 ANALYST 20
KING 5000 PRESIDENT 10
Q3_6
Отделы, где число сотрудников больше 3 и средний оклад больше среднего оклада отдела 30
SQL> select DEPTNO dept,avg(sal) from EMP
group by DEPTNO
having count(EMPNO) > 3
and avg(sal) > (select avg(sal) from EMP
where DEPTNO = 30);
DEPTNO AVG(SAL)
--------- ---------
20 2175
Q3_7
Год когда в компанию было зачислено наибольшее количество служащих
SQL> select to_char(hiredate,'YYYY') year,count(EMPNO) num
from EMP
group by to_char(hiredate,'YYYY')
having count(EMPNO) = (select max(count(EMPNO))
from EMP
group by to_char(hiredate,'YYYY'));
YEAR NUM
---- ---------
1981 10
3.2 Коррелированные подзапросы
Q3_8
Список сотрудников, получающих зарплату больше средней по отделу, где работают
SQL> select EMPNO,ename name,sal,DEPTNO
from EMP x
where sal > (select avg(sal) from EMP
where DEPTNO = x.DEPTNO)
order by DEPTNO,sal desc;
EMPNO NAME SAL DEPTNO
--------- ---------- --------- ----------
7839 KING 5000 10
7902 FORD 3000 20
7788 SCOTT 3000 20
7566 JONES 2975 20
7698 BLAKE 2850 30
7499 ALLEN 1600 30
