Использование подзапросов для решения запросов презентация

Содержание

Слайд 2

Цели Изучив материал этого занятия, вы сможете: Определять подзапросы Описывать

Цели

Изучив материал этого занятия, вы сможете:
Определять подзапросы
Описывать типы

проблем, для решения которых можно использовать подзапросы
Перечислять типы подзапросов
Создавать однострочные и многострочные подзапросы
Слайд 3

План занятия Подзапрос: типы, синтаксис и указания Однострочные подзапросы: групповые

План занятия

Подзапрос: типы, синтаксис и указания
Однострочные подзапросы:
групповые функции

в подзапросе
предложение HAVING с подзапросами
Многострочные подзапросы
использование оператора ALL или ANY
Значения NULL в подзапросе
Слайд 4

Использование подзапроса для решения проблемы У кого оклад больше, чем

Использование подзапроса для решения проблемы

У кого оклад больше, чем у

Abel?

У кого из сотрудников оклады больше, чем оклад у Abel?

Основной запрос:

Какой оклад у Abel?

Подзапрос:

Слайд 5

Синтаксис подзапроса Подзапрос (внутренний запрос) выполняется перед основным (внешним) запросом.

Синтаксис подзапроса

Подзапрос (внутренний запрос) выполняется перед основным (внешним) запросом.
Результат

подзапроса используется основным запросом.

SELECT select_list
FROM table
WHERE expr operator
(SELECT select_list
FROM table);

Слайд 6

SELECT last_name, salary FROM employees WHERE salary > (SELECT salary

SELECT last_name, salary
FROM employees
WHERE salary >
(SELECT salary


FROM employees
WHERE last_name = 'Abel');

Использование подзапросов

11000

Слайд 7

Указания по использованию подзапросов Заключайте подзапросы в скобки. Для повышения

Указания по использованию подзапросов

Заключайте подзапросы в скобки.
Для повышения наглядности

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

Типы подзапросов Однострочный подзапрос Многострочный подзапрос Основной запрос Подзапрос возвращает

Типы подзапросов

Однострочный подзапрос
Многострочный подзапрос

Основной запрос

Подзапрос


возвращает


ST_CLERK

ST_CLERK
SA_MAN

Основной запрос

Подзапрос


возвращает

Слайд 9

План занятия Подзапрос: типы, синтаксис и указания Однострочные подзапросы: групповые

План занятия

Подзапрос: типы, синтаксис и указания
Однострочные подзапросы:
групповые функции

в подзапросе
предложение HAVING с подзапросами
Многострочные подзапросы
использование оператора ALL или ANY
Значения NULL в подзапросе
Слайд 10

Однострочные подзапросы Возвращают только одну строку Используют однострочные операторы сравнения

Однострочные подзапросы

Возвращают только одну строку
Используют однострочные операторы сравнения

Больше

или равно

>=

Меньше

<

Меньше или равно

<=

Равно

=

Не равно

<>

Больше

>

Значение

Оператор

Слайд 11

SELECT last_name, job_id, salary FROM employees WHERE job_id = (SELECT

SELECT last_name, job_id, salary
FROM employees
WHERE job_id =
(SELECT

job_id
FROM employees
WHERE last_name = ‘Taylor’)
AND salary >
(SELECT salary
FROM employees
WHERE last_name = ‘Taylor’);

Выполнение однострочных подзапросов

SA_REP

8600

Слайд 12

SELECT last_name, job_id, salary FROM employees WHERE salary = (SELECT

SELECT last_name, job_id, salary
FROM employees
WHERE salary =
(SELECT

MIN(salary)
FROM employees);

Использование в подзапросах групповых функций

2500

Слайд 13

SELECT department_id, MIN(salary) FROM employees GROUP BY department_id HAVING MIN(salary)

SELECT department_id, MIN(salary)
FROM employees
GROUP BY department_id
HAVING MIN(salary) >


(SELECT MIN(salary)
FROM employees
WHERE department_id = 50);

Предложение HAVING в подзапросах

Сервер Oracle выполняет подзапросы первыми.
Сервер Oracle возвращает результаты в предложение HAVING основного запроса.

2500


Слайд 14

SELECT employee_id, last_name FROM employees WHERE salary = (SELECT MIN(salary)

SELECT employee_id, last_name
FROM employees
WHERE salary =
(SELECT MIN(salary)


FROM employees
GROUP BY department_id);

Что неправильно в этой инструкции?

Однострочный оператор с многострочным подзапросом

Слайд 15

SELECT last_name, job_id FROM employees WHERE job_id = (SELECT job_id

SELECT last_name, job_id
FROM employees
WHERE job_id =
(SELECT job_id


FROM employees
WHERE last_name = 'Haas');

Внутренний запрос не вернул ни одной строки

Подзапрос не вернул ни одной строки, поскольку нет сотрудника с фамилией «Haas».

Слайд 16

План занятия Подзапрос: типы, синтаксис и указания Однострочные подзапросы: групповые

План занятия

Подзапрос: типы, синтаксис и указания
Однострочные подзапросы:
групповые функции

в подзапросе
предложение HAVING с подзапросами
Многострочные подзапросы
использование оператора ALL или ANY
Значения NULL в подзапросе
Слайд 17

Многострочные подзапросы Возвращают больше одной строки Используют многострочные операторы сравнения

Многострочные подзапросы

Возвращают больше одной строки
Используют многострочные операторы сравнения

Перед

ним должны использоваться операторы =, !=, >, <, <=, >=. Сравнивает текущее значение со всеми значениями, перечисленными в списке или возвращенными запросом. Получает значение TRUE, если запрос не вернул ни одной строки.

ALL

Равен любому элементу из списка

IN

Перед ним должны использоваться операторы =, !=, >, <, <=, >=. Сравнивает текущее значение с каждым значением, перечисленным в списке |или возвращенным запросом. Получает значение FALSE, если запрос не вернул ни одной строки.

ANY

Значение

Оператор

Слайд 18

SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary (SELECT

SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary < ANY


(SELECT salary
FROM employees
WHERE job_id = 'IT_PROG')
AND job_id <> 'IT_PROG';

Использование оператора ANY в многострочных подзапросах

9000, 6000, 4200


Слайд 19

SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary (SELECT

SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary < ALL


(SELECT salary
FROM employees
WHERE job_id = 'IT_PROG')
AND job_id <> 'IT_PROG';

Использование оператора ALL в многострочных подзапросах

9000, 6000, 4200

Слайд 20

План занятия Подзапрос: типы, синтаксис и указания Однострочные подзапросы: групповые

План занятия

Подзапрос: типы, синтаксис и указания
Однострочные подзапросы:
групповые функции

в подзапросе
предложение HAVING с подзапросами
Многострочные подзапросы
использование оператора ALL или ANY
Значения NULL в подзапросе
Слайд 21

SELECT emp.last_name FROM employees emp WHERE emp.employee_id NOT IN (SELECT

SELECT emp.last_name
FROM employees emp
WHERE emp.employee_id NOT IN
(SELECT

mgr.manager_id
FROM employees mgr);

Значения NULL в подзапросе

Слайд 22

Слайд 23

SELECT select_list FROM table WHERE expr operator (SELECT select_list FROM

SELECT select_list
FROM table
WHERE expr operator
(SELECT select_list
FROM table);


Заключение

На этом занятии были изучены следующие темы:
Ситуации, когда для решения проблемы целесообразно использовать подзапросы
Создание подзапросов для запросов, учитывающих неизвестные значения

Слайд 24

Упражнение 7: обзор Это упражнение охватывает следующие темы: Создание подзапросов

Упражнение 7: обзор

Это упражнение охватывает следующие темы:
Создание подзапросов для

запроса данных с учетом неизвестных условий
Использование подзапросов для поиска значений, существующих в одном наборе данных и отсутствующих в другом
Слайд 25

Слайд 26

Слайд 27

Имя файла: Использование-подзапросов-для-решения-запросов.pptx
Количество просмотров: 23
Количество скачиваний: 0