SQL — Подзапросы

SQL — Подзапросы

От автора: в SQL подзапросы — или внутренние запросы, или вложенные запросы — это запрос внутри другого запроса SQL, который вложен в условие WHERE.

Подзапрос используется для возврата данных, которые будут использоваться в основном запросе, в качестве условия для дальнейшей фильтрации данных, подлежащих извлечению.

Подзапросы могут использоваться с инструкциями SELECT, INSERT, UPDATE и DELETE вместе с операторами типа =, <,>,> =, <=, IN, BETWEEN и т. д.

Существует несколько правил, которые применяются к подзапросам:

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

Подзапрос может иметь только один столбец в условии SELECT, если только несколько столбцов не указаны в основном запросе для подзапроса для сравнения выбранных столбцов.

Команда ORDER BY не может использоваться в подзапросе, хотя в основном запросе она использоваться может. В подзапросе может использоваться команда GROUP BY для выполнения той же функции, что и ORDER BY.

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

Список SELECT не может содержать ссылки на значения, которые вычисляются для BLOB, ARRAY, CLOB или NCLOB.

Подзапрос не может быть сразу заключен в функцию set.

С подзапросом не может использоваться оператор BETWEEN. Однако оператор BETWEEN может использоваться внутри подзапроса.

Подзапросы с инструкцией SELECT

Подзапросы чаще всего используются с инструкцией SELECT. При этом используется следующий синтаксис:

Пример

Рассмотрим таблицу CUSTOMERS, содержащую следующие записи:

SQL — Подзапросы

Теперь давайте выполним следующий подзапрос с инструкцией SELECT.

В результате мы получим следующее.

SQL — Подзапросы

Подзапросы с инструкцией INSERT

Подзапросы также могут использоваться с инструкцией INSERT. Инструкция INSERT использует данные, возвращаемые из подзапроса, для вставки в другую таблицу. Выбранные в подзапросе данные могут быть изменены с помощью любых функций символа, даты или числа. Основной синтаксис следующий.

Пример

Рассмотрим таблицу CUSTOMERS_BKP со структурой аналогичной таблице CUSTOMERS. Теперь, чтобы скопировать всю таблицу CUSTOMERS в таблицу CUSTOMERS_BKP, вы можете использовать следующий синтаксис.

Подзапросы с инструкцией UPDATE

Подзапрос может использоваться в сочетании с инструкцией UPDATE. Один или несколько столбцов в таблице могут быть обновлены при использовании подзапроса с помощью инструкции UPDATE. Основной синтаксис следующий.

Пример

Исходя из того, что у нас есть таблица CUSTOMERS_BKP, которая является резервной копией таблицы CUSTOMERS, в следующем примере для всех записей, для которых AGE больше или равно 27, применяет коэффициент 0,25.

В результате будут изменены две строки, и таблица CUSTOMERS будет выглядеть следующим образом.

SQL — Подзапросы

Подзапросы с инструкцией DELETE

Подзапрос может использоваться в сочетании с инструкцией DELETE, так же как и со всеми описанными выше инструкциями. Основной синтаксис следующий.

Пример

Предположим, у нас есть таблица CUSTOMERS_BKP, которая является резервной копией таблицы CUSTOMERS. В следующем примере удаляются записи из таблицы CUSTOMERS для всех клиентов, AGE которых больше или равно 27.

В результате будут изменены две строки и таблица CUSTOMERS будет выглядеть следующим образом.

SQL — Подзапросы

Источник: //www.tutorialspoint.com/

Редакция: Команда webformyself.

Метки:

Похожие статьи:

Комментарии Вконтакте: