Продвинутые SQL-запросы
Теория: Подзапрос
Подзапрос SQL - это запрос, который включается в другой запрос. Подзапросы позволяют использовать результат выполнения внутреннего запроса во внешнем запросе, что позволяет строить сложные запросы из более простых.
Применение подзапросов
Подзапросы могут применяться практически везде, в любых операторах, в том числе в операторах DDL, DML.
Рассмотрим таблицу products:
products
Пример подзапроса, который выводит все продукты, цена которых выше средней по всем продуктам:
В результате мы получим такую таблицу:
products
Пример подзапроса, который выводит все продукты, которые есть в таблице с чеками:
Результат будет следующим:
products
ALL/ANY (MySQL)
Подзапрос как новая колонка
Подзапросы в SQL могут быть использованы для создания новых колонок в результирующем наборе данных.
Новая колонка, созданная с помощью подзапроса, может содержать вычисленные значения, агрегатные функции или другие данные, основанные на значениях других столбцов в таблице
Результат будет таким:
products
Подзапросы в UPDATE
Одно из основных применений подзапросов в операции UPDATE - это обновление значений столбца на основе вычисленных или фильтрованных данных из других таблиц или столбцов.
Подзапросы в INSERT
Подзапросы в операции INSERT используются для вставки данных, полученных из других таблиц или вычисленных с помощью подзапросов.
Подзапросы в DELETE
Подзапросы в операции DELETE позволяют удалить данные из таблицы на основе результатов других запросов или данных из других таблиц.
Коррелированный подзапрос
Коррелированный подзапрос - это подзапрос, который зависит от внешнего запроса и использует значения из внешнего запроса в своем выражении или фильтре.
Основное применение коррелированных подзапросов - это выполнение операций, связанных с каждой строкой основного запроса. Коррелированные подзапросы выполняются для каждой строки внешнего запроса и используют значения из этой строки для фильтрации или вычисления данных в подзапросе.
products




