Содержание
- 2. База данных, используемая в примерах Задание на объединение: вывести все путевки туриста Иванова (ПунктНазначения, Фамилия).
- 3. Подзапрос – это оператор SELECT, вложенный в: предложение WHERE или HAVING другого оператора SELECT; оператор INSERT,
- 4. Подзапрос Некорреллированный (не зависит от внешнего запроса) Корреллированный (зависит от внешнего запроса) Пример: Вывести сумму, которую
- 5. Некорреллированный подзапрос: SELECT Сумма FROM Оплата WHERE КодТуриста IN (SELECT КодТуриста FROM Туристы WHERE Фамилия =
- 6. Корреллированный подзапрос: SELECT Сумма FROM Оплата WHERE ‘Иванов’ IN (SELECT Фамилия FROM Туристы WHERE Оплата.КодТуриста =
- 7. Большинство подзапросов могут быть заменены запросом на объединение таблиц SELECT Сумма FROM Оплата, Туристы WHERE Фамилия
- 8. Некоторые выборки гораздо удобнее представлять в виде подзапросов, чем в виде объединения, например, при необходимости самообъединения
- 9. Самообъединение: SELECT тур1.Фамилия, тур1.Имя, тур1.Отчество FROM Туристы тур1, Туристы тур2 WHERE тур1.Телефон = тур2.Телефон and тур2.Фамилия
- 10. Подзапрос (какой?некорр/корр): SELECT Фамилия, Имя, Отчество FROM Туристы WHERE Телефон IN (SELECT Телефон FROM Туристы WHERE
- 11. Обычно : Подзапросы используются, когда необходимо сравнивать значения агрегирующей функции с другими значениями. Объединения используются, когда
- 12. Для написания подзапроса используются следующие операторы: IN (или NOT IN); операторы сравнения с использованием или без
- 13. ANY и ALL > ALL означает больше самого большого > ANY - больше хотя бы одного
- 14. SELECT Фамилия, Имя, Отчество FROM Оплата, Туристы WHERE Оплата.КодТуриста = Туристы.КодТуриста and Сумма > ALL (SELECT
- 15. При использовании операторов сравнения без ANY или ALL необходимо, чтобы подзапрос возвращал только единственное значение. Например,
- 16. Гарантии выборки единственного значения может дать применение агрегирующих функций, например вывести коды туристов, которые заплатили самую
- 17. Кроме того, при использовании операторов сравнения (с использованием или без использования ALL или ANY) нужно гарантировать,
- 18. EXISTS Это запросы, выполняющие проверку на существование. Например запрос «Вывести фамилию, имя и отчество туристов, если
- 19. SELECT Фамилия, Имя, Отчество FROM Туристы WHERE EXISTS (SELECT * FROM Оплата WHERE Туристы.Фамилия = ‘Иванов’);
- 20. Или запрос «Вывести фамилию, имя и отчество туристов, если среди них нет должников» можно выполнить следующим
- 21. Подзапросы с разным уровнем вложения Пример: Вывести фамилии туристов, которые отправились в Париж.
- 22. SELECT Фамилия FROM Туристы WHERE КодТуриста IN (SELECT КодТуриста FROM Оплата WHERE КодПутевки IN (SELECT КодПутевки
- 23. Подзапросы в операторе UPDATE Пример: Уменьшить всем Ивановым сумму, оплаченную за путевку в 2 раза UPDATE
- 25. Скачать презентацию