Презентация на тему: ИЕРАРХИЧЕСКИЕ ЗАПРОСЫ

ИЕРАРХИЧЕСКИЕ ЗАПРОСЫ
Цели занятия
Иерархические Запросы
Иерархические Запросы (прод.)
Иерархические Запросы (прод.)
Иерархические Запросы (прод.)
Задание к лаб. работе № 1 5
1/7
Средняя оценка: 4.2/5 (всего оценок: 18)
Код скопирован в буфер обмена
Скачать (59 Кб)
1

Первый слайд презентации: ИЕРАРХИЧЕСКИЕ ЗАПРОСЫ

Изображение слайда
2

Слайд 2: Цели занятия

К концу занятия студенты узнают следующее : Операторы для выполнения иерархических запросов.

Изображение слайда
3

Слайд 3: Иерархические Запросы

Синтаксис : [START WITH condition] CONNECT BY [ NOCYCLE ] condition START WITH –   задает строку/строки, лежащие в корне иерархии. Это выражение определяет условие, которому должны соответствовать корневые строки. Условие может содержать вложенные запросы. Если эта фраза не задана, то все строки таблицы являются корневыми. CONNECT BY – задает отношение между родительскими и дочерними строками в иерархии. Отношение задается «P-условием», это может быть любое сравнение, но какая-то его часть должна содержать ключевое слово PRIOR, относящееся к родительской строке. Чтобы найти дочерние строки, Oracle вычисляет  PRIOR-выражение для родительской строки, а другое выражение – для каждой строки таблицы. Строки, для которых это выражение дает истину, являются дочерними. CONNECT BY может содержать и другие условия-фильтры. CONNECT BY не может содержать вложенных запросов. R ownum – псевдостолбец, в котором нумеруются строки, начиная от 1 в порядке их выдачи. Его можно использовать в иерархических запросах.

Изображение слайда
4

Слайд 4: Иерархические Запросы (прод.)

Пример запроса, который использует оператор CONNECT BY   для описания зависимости между начальниками и подчиненными : SELECT id, last_name, manager_id FROM s_emp CONNECT BY PRIOR id = manager_id; Использование оператора   START WITH   для определения начального уровня, с которого следует отображать иерархию по сотрудникам. Комбинация операторов ORDER BY   и   SIBLINGS   предотвращает сортировку внутри иерархии : SELECT last_name, id, manager_id, LEVEL FROM s_emp START WITH id = 10 CONNECT BY PRIOR id = manager_id ORDER SIBLINGS BY last_name;

Изображение слайда
5

Слайд 5: Иерархические Запросы (прод.)

Пример вывода иерархии в 10 отделе и «пути» к подчиненному в этой иерархии : SELECT last_name "Employee", CONNECT_BY_ROOT last_name "Manager", LEVEL-1 "Pathlen", SYS_CONNECT_BY_PATH(last_name, '/') "Path" FROM s_emp WHERE LEVEL > 1 and dept_id = 42 CONNECT BY PRIOR id = manager_id; Пример использования оператора   GROUP BY   для отображения общей зарплаты в 10 отделе и всех сотрудников в иерархии : SELECT name, SUM(salary) "Total_Salary" FROM (SELECT CONNECT_BY_ROOT last_name as name, salary FROM s_emp WHERE dept_id = 10 CONNECT BY PRIOR id = manager_id) GROUP BY name;

Изображение слайда
6

Слайд 6: Иерархические Запросы (прод.)

LEVEL – данный оператор используется совместно с CONNECT BY для отображения уровня, начиная с 1 -го. CONNECT_BY_ISLEAF и CONNECT BY_ISCYCLE – используются для определения иерархии. Пример использования оператора LEVEL : SELECT id, last_name, manager_id, LEVEL FROM s_emp CONNECT BY PRIOR id = manager_id; Пример использования оператора NOCYCLE   вместе с CONNECT BY : SELECT last_name "Employee", CONNECT_BY_ISCYCLE "Cycle", LEVEL, SYS_CONNECT_BY_PATH(last_name, '/') "Path" FROM s_emp WHERE level <= 3 AND dept_id = 10 START WITH last_name = 'Biri' CONNECT BY NOCYCLE PRIOR id = manager_id AND LEVEL <= 4;

Изображение слайда
7

Последний слайд презентации: ИЕРАРХИЧЕСКИЕ ЗАПРОСЫ: Задание к лаб. работе № 1 5

Согласно варианту (по номеру в журнале) выведите для сотрудника с таким же номером из учебной схемы данных всех его начальников, всех его подчиненных и сотрудников одного с ним уровня (независимо от наличия таких записей).

Изображение слайда