Openstack DevOps and IBM/Informix Certified DBA . Phd in Math (Duality of spaces of... · 10 апр 2022
Подзапрос, внутренний запрос или вложенный запрос — это запрос в другом запросе SQL, встроенный в предложение WHERE.
=====================================
Подзапрос используется для возврата данных, которые будут использоваться в основном запросе в качестве условия для дальнейшего ограничения извлекаемых данных.
Подзапросы можно использовать с операторами SELECT, INSERT, UPDATE и DELETE вместе с такими операторами, как =, <, >, >=, <=, IN, BETWEEN и т. д.
Есть несколько правил, которым должны следовать подзапросы:
Подзапросы должны быть заключены в круглые скобки.
Подзапрос может иметь только один столбец в предложении SELECT, если в основном запросе для подзапроса не указано несколько столбцов для сравнения выбранных столбцов.
Команду ORDER BY нельзя использовать в подзапросе, хотя основной запрос может использовать ORDER BY. Команду GROUP BY можно использовать для выполнения той же функции, что и команду ORDER BY в подзапросе.
Подзапросы, которые возвращают более одной строки, могут использоваться только с операторами с несколькими значениями, такими как оператор IN.
Список SELECT не может включать какие-либо ссылки на значения, которые оцениваются как BLOB, ARRAY, CLOB или NCLOB.
Подзапрос нельзя сразу включить в функцию set.
Оператор BETWEEN нельзя использовать с подзапросом. Однако внутри подзапроса можно использовать оператор BETWEEN.
===========================================
Subqueries with the SELECT Statement - примеры
===========================================
=======================================
Subqueries с оператором INSERT
=======================================
Подзапросы также можно использовать с операторами INSERT.
Оператор INSERT использует данные, возвращенные из подзапроса, для вставки в другую таблицу.
Выбранные данные в подзапросе могут быть изменены с помощью любой функции символов, даты или числа.
SQL> INSERT INTO CUSTOMERS_BKP
SELECT * FROM CUSTOMERS
WHERE ID IN (SELECT ID
FROM CUSTOMERS) ;
=====================================
Subqueries с оператором UPDATE
=====================================
Подзапрос можно использовать вместе с оператором UPDATE. При использовании подзапроса с
оператором UPDATE можно обновить один или несколько столбцов в таблице.
=======================================
Subqueries с оператором DELETE
Подзапрос можно использовать вместе с оператором DELETE, как и с любыми другими операторами, упомянутыми выше.
=======================================
Как правило, основной запрос и подзапрос обращаются к разным таблицам , иначе кроме торможения подзапрос никаких бенефитов не дает.