Язык SQL. Подзапросы. (Лекция 10) презентация

Подзапросы SELECT select_list FROM table1 WHERE expr operator (SELECT select_list FROM table2); Выполняется до выполнения основного запроса; Результат выполнения подзапроса используется в основном запросе; Подзапросы заключаются в круглые скобки 18.11.2017

Слайд 1Базы данных
Лекция 9
Язык SQL.
Подзапросы


Слайд 2 Подзапросы
SELECT select_list
FROM table1
WHERE expr operator
(SELECT select_list FROM table2);
Выполняется до выполнения основного запроса;
Результат выполнения

подзапроса используется в основном запросе;
Подзапросы заключаются в круглые скобки


18.11.2017

Горбунов О.Е.


Слайд 3 Подзапросы
SELECT last_name, salary
FROM employee
WHERE salary >
(SELECT

salary
FROM employee
WHERE last_name = 'Abel');


18.11.2017

Горбунов О.Е.


Слайд 4 Однострочные подзапросы
Возвращают одну строку
Используйте операторы сравнения (>, >=,

<>)

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');


18.11.2017

Горбунов О.Е.


Слайд 5 Однострочные подзапросы. Агрегирующие функции в подзапросах
SELECT last_name, job_id, salary
FROM employees
WHERE

salary = (SELECT MIN(salary)
FROM employees);

SELECT department_id, MIN(salary)
FROM employees
GROUP BY department_id
HAVING MIN(salary) > (SELECT MIN(salary)
FROM employees
WHERE department_id = 50);



18.11.2017

Горбунов О.Е.


Слайд 6 Многострочные подзапросы

Возвращают более одной строки
Используются специальные операторы
IN
ANY (используется после оператора сравнения)
ALL

(используется после оператора сравнения)


=ANY эквивалентно IN
<>ALL эквивалентно NOT IN

18.11.2017

Горбунов О.Е.


Слайд 7 Многострочные подзапросы

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‘);

18.11.2017

Горбунов О.Е.


Слайд 8 Оператор EXISTS

SELECT employee_id,salary,last_name FROM employees M
WHERE EXISTS
(SELECT employee_id FROM employees W

WHERE (W.manager_id=M.employee_id) AND W.salary > 10000);

18.11.2017

Горбунов О.Е.


Слайд 9Использование NULL-значений
SELECT emp.last_name
FROM employee emp
WHERE emp.employee_id NOT IN

(SELECT mgr.manager_id
FROM employee mgr);
Ничего не вернет, если в подзапросе одно из значение будет равно NULL.
Для IN нет подобной проблемы.
Выход – использовать WHERE NOT NULL либо EXISTS и коррелированный подзапрос.


18.11.2017

Горбунов О.Е.


Слайд 10Использование NULL-значений
SELECT emp.last_name
FROM employee emp
WHERE NOT EXISTS ( SELECT emp.employee_id

FROM employee slv
WHERE emp.employee_id = slv.manager_id );


18.11.2017

Горбунов О.Е.


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика