что такое вложенные запросы для чего они нужны

Подзапросы в SQL (вложенные запросы SQL)

Что такое подзапросы в SQL?

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

Подзапросы SQL-примеры

В этом разделе мы рассмотрим, как использовать подзапросы. У нас есть следующие две таблицы: ‘ student ‘ и ‘ marks ‘ с общим полем ‘ StudentID ‘:

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

Теперь нужно составить запрос, определяющий всех студентов, которые получают лучшие отметки, чем студент со StudentID — « V002 ». Но мы не знаем отметок студента « V002 ».

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

Два приведенных запроса определяют студентов, которые получают лучше оценки, чем студент StudentID « V002 » ( Abhay ).

Можно объединить эти два запроса, вложив один запрос в другой. Подзапрос — это запрос внутри круглых скобок. Рассмотрим подзапроса в SQL пример :

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

Графическое представление подзапроса SQL :

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

Подзапросы в SQL (вложенные запросы SQL): общие правила

Ниже приведен синтаксис подзапроса :

Подзапросы SQL (вложенные запросы SQL): рекомендации по использованию

Ниже приведен ряд рекомендаций, которым нужно следовать при использовании SQL подзапросов:

Подзапросы SQL (вложенные запросы SQL) — основные типы

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

Пример таблицы: orders

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

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

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

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

Если нужно удалить заказы из таблицы « neworder », для которых advance_amount меньше максимального значения advance_amount из таблицы « orders », можно использовать следующий код SQL :

Пример таблицы: neworder

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

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

Источник

Вложенные запросы (SQL Server)

В примерах из этой статьи используется база данных AdventureWorks2016. Образцы баз данных AdventureWorks можно скачать здесь.

Основы вложенных запросов

Вложенный запрос по-другому называют внутренним запросом или внутренней операцией выбора, в то время как инструкцию, содержащую вложенный запрос, называют внешним запросом или внешней операцией выбора.

Многие инструкции языка Transact-SQL, включающие подзапросы, можно записать в виде соединений. Другие запросы могут быть осуществлены только с помощью подзапросов. В языке Transact-SQL обычно не бывает разницы в производительности между инструкцией, включающей вложенный запрос, и семантически эквивалентной версией без вложенного запроса. Дополнительные сведения о том, как SQL Server обрабатывает запросы, см. в разделе Обработка инструкций SQL. Однако в некоторых случаях, когда проверяется существование, соединения показывают лучшую производительность. В противном случае для устранения дубликатов вложенный запрос должен обрабатываться для получения каждого результата внешнего запроса. В таких случаях метод работы соединений дает лучшие результаты.

Вложенный во внешнюю инструкцию SELECT запрос, имеет следующие компоненты:

Запрос SELECT вложенного запроса всегда заключен в скобки. Он не может включать предложения COMPUTE или FOR BROWSE и может включать предложение ORDER BY только вместе с предложением TOP.

Если таблица появляется только во вложенном запросе, а не во внешнем запросе, в этом случае столбцы данной таблицы не могут быть включены в выходные данные (список выборки внешнего запроса).

Инструкции, включающие вложенные запросы, обычно имеют один из следующих форматов:

В некоторых инструкциях языка Transact-SQL вложенный запрос может рассматриваться как отдельный запрос. Обычно результаты вложенного запроса подставляются во внешний запрос (хотя SQL Server может обрабатывать инструкции Transact-SQL с вложенными запросами и по-другому).

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

Правила вложенных запросов

На вложенный запрос распространяются следующие ограничения:

Уточнение имен столбцов во вложенных запросах

В следующем примере столбец BusinessEntityID в предложении WHERE внешнего запроса неявно уточняется именем таблицы, используемой в предложении FROM внешнего запроса (Sales.Store). Ссылка на столбец CustomerID в списке выборки вложенного запроса уточняется именем таблицы с помощью предложения FROM вложенного запроса, то есть Sales.Customer.

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

Вот как выглядит этот запрос с явно указанными неявными соглашениями:

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

Если столбец, на который есть ссылка во вложенном запросе, не существует в таблице, указанной в предложении FROM вложенного запроса, но существует в таблице, на которую ссылается предложение FROM внешнего запроса, запрос будет выполнен без ошибок. SQL Server неявно уточнит имя столбца во вложенном запросе с помощью имени таблицы внешнего запроса.

Множественные уровни вложенности

Каждый вложенный запрос, в свою очередь, может содержать один или более вложенных запросов. В инструкцию можно вложить любое количество вложенных запросов.

Следующий запрос осуществляет поиск сотрудников, занимающих должность менеджера по продажам.

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

Этот запрос также можно выразить с помощью соединения:

Связанные вложенные запросы

Результат для нескольких запросов может быть получен путем выполнения одного вложенного запроса и подстановки полученного результата или результатов в предложение WHERE внешнего запроса. В запросах, содержащих коррелированные вложенные запросы (также называемые повторяющимися вложенными запросами), вложенный запрос зависит по значению от внешнего запроса. Это означает, что выполнение вложенного запроса повторяется по одному разу для каждой строки, которая может быть выбрана внешним запросом. Такой запрос получает по одной записи для имени и фамилии каждого сотрудника, который в таблице SalesPerson имеет сумму премиальных, равную 5000, с соответствующими идентификаторами сотрудников в таблицах Employee и SalesPerson.

Результатом является 0.00 ( Syed Abbas не получал премиальных, потому что не является менеджером по продажам), поэтому выполнение внешнего запроса приводит к следующему результату:

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

Типы вложенных запросов

Вложенные запросы могут быть указаны во многих местах:

Вложенные запросы с псевдонимами таблицы

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

Можно также использовать самосоединение:

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

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

Вложенные запросы с ключевым словом IN

Результат вложенного запроса, в котором присутствует ключевое слово IN (или NOT IN ) — это список из нуля или более значений. После того как вложенный запрос вернул результат, он используется внешним запросом.
Следующий запрос ищет названия всех колес, произведенных компанией Adventure Works Cycles.

Эта инструкция выполняется в два шага. Сначала внутренний запрос возвращает номер идентификатора подкатегории по соответствию названию «Wheel» (17). Затем это значение подставляется во внешний запрос, который находит все названия изделий, имеющих соответствующие идентификаторы подкатегорий в столбце Production.Product.

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

Следующий запрос ищет названия всех поставщиков, имеющих высокий кредитный рейтинг, у которых компания Adventure Works Cycles заказала как минимум 20 позиций, и средний срок поставки у которых не превышает 16 дней.

Выполняется внутренний запрос и возвращаются номера идентификаторов поставщиков, которые соответствуют определениям вложенного запроса. Затем выполняется внешний запрос. Обратите внимание, что в предложение WHERE как внутреннего, так и внешнего запроса может быть включено несколько условий.

При использовании соединения тот же запрос будет выражен так:

Соединение всегда может быть выражено в виде вложенного запроса. Вложенный запрос часто, но не всегда может быть выражен в виде соединения. Это происходит потому, что соединения симметричны: можно соединить таблицы A и B в любом порядке и получить одинаковый результат. Для вложенных запросов это не всегда справедливо.

Вложенные запросы с ключевым словом NOT IN

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

Эту инструкцию нельзя преобразовать в соединение. Аналогичное соединение по неравенству имеет другой смысл: оно находит названия продуктов, которые принадлежат какой-либо подкатегории, отличной от готового велосипеда.

В следующем примере удваивается значение столбца ListPrice таблицы Production.Product. Вложенный запрос в предложении WHERE ссылается на таблицу Purchasing.ProductVendor для ограничения количества обновляемых строк таблицы Product только теми, у которых идентификатор BusinessEntity равен 1540.

Для ясности, если на одну и ту же таблицу ссылаются в других вложенных запросах, используйте псевдонимы целевой таблицы:

Вложенные запросы с операторами сравнения

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

Однако если сотрудник Linda Mitchell работал более чем с одной территорией продаж, вы получите сообщение об ошибке. Вместо оператора сравнения = может использоваться формулировка IN (также может использоваться =ANY ).

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

Так как вложенные запросы, начинающиеся с неизмененных операторов сравнения, должны возвращать одиночное значение, они не могут включать предложения GROUP BY или HAVING (за исключением случаев, когда достоверно известно, что предложение GROUP BY или HAVING возвратит одиночное значение). Например, следующий запрос находит продукты, оцененные выше, чем самый дешевый продукт, который находится в столбце ProductSubcategoryID 14.

Рассмотрим, например оператор сравнения >: >ALL будет означать «больше любого значения». Другими словами, это сравнение с максимальным значением. Например, >ALL (1, 2, 3) означает «больше 3». >ANY означает «больше по крайней мере одного значения», т. е. «больше минимума». Поэтому >ANY (1, 2, 3) означает «больше 1». Чтобы строка результата вложенного запроса с >ALL удовлетворяла условию, заданному внешним запросом, значение в столбце, для которого вводится вложенный запрос, должно быть больше каждого значения из списка, возвращаемого вложенным запросом.

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

Если вложенный запрос не возвращает значений, весь запрос не возвратит никаких значений.

Вот результирующий набор, возвращаемый любым из этих запросов:

Однако оператор <>ANY отличается от NOT IN :

Например, следующий запрос отобразит заказчиков, находящихся на территории, где не работает ни один менеджер по продажам.

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

По этой же причине, если использовать NOT IN в этом запросе, в результат не войдет ни один из заказчиков.

Вложенные запросы с ключевым словом EXISTS

Вложенный запрос, созданный с помощью ключевого слова EXISTS, имеет следующий синтаксис:

WHERE [NOT] EXISTS (subquery)

Следующий запрос ищет названия всех продуктов, которые находятся в подкатегории Wheels:

Обратите внимание на то, что вложенные запросы, введенные с помощью ключевого слова EXISTS, отличаются от других вложенных запросов следующим образом.

Вложенные запросы с ключевым словом NOT EXISTS

Например чтобы найти имена продуктов, не находящихся в подкатегории wheels:

Вложенные запросы, используемые вместо выражения

Следующий пример показывает, как можно использовать это улучшение. Запрос находит цены на все горные велосипеды, их среднюю цену и разницу между средней ценой и ценой каждого горного велосипеда.

Источник

Вложенные запросы в T-SQL – описание и примеры

Приветствую Вас на сайте Info-Comp.ru! В этой заметке мы рассмотрим вложенные запросы языка SQL, я расскажу, что такое вложенные запросы, где и в каких конструкциях их можно использовать, покажу примеры их использования, а также расскажу про особенности и некоторые ограничения вложенных SQL запросов или, как еще их иногда называют, подзапросов SQL.

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

Что такое вложенные запросы SQL?

Вложенный SQL запрос – это отдельный запрос, который используется внутри SQL инструкции. Вложенный запрос также называют внутренним SQL запросом или подзапросом, а инструкцию, в которой используется вложенный запрос, называют внешним SQL запросом.

Вложенные SQL запросы могут быть использованы везде, где разрешено использовать SQL выражения, это может быть и секция SELECT, и FROM, и WHERE, и даже JOIN, чуть ниже я покажу примеры использования вложенных запросов в каждой из перечисленных выше секций.

Использовать вложенные запросы иногда бывает очень удобно, но обязательно стоит отметить и то, что в некоторых случаях использование вложенного SQL запроса может снизить производительность, т.е. замедлить работу всей SQL инструкции. Тем более что не редко вложенный SQL запрос можно заменить простым объединением.

Кроме того, вложенные запросы могут быть вложены друг в друга (в некоторых случаях вплоть до 32-го уровня), но тем самым значительно снижается читабельность SQL инструкций и ее понятность, а также повышается ее сложность.

Кстати, о том, как писать хорошие понятные SQL инструкции на языке T-SQL, которые будут понятны и Вам спустя время, и другим программистам, я подробно рассказал в своей книге – «Стиль программирования на T-SQL – основы правильного написания кода».

Заметка! Для комплексного изучения языка T-SQL рекомендую посмотреть мои видеокурсы по T-SQL, в которых используется последовательная методика обучения и рассматриваются все конструкции языка SQL и T-SQL.

Особенности вложенных запросов

Вложенные SQL запросы имеют несколько важных особенностей, про которые не стоит забывать при конструировании SQL инструкций:

Примеры вложенных SQL запросов в Microsoft SQL Server

Ну а теперь пора переходить к практике, сейчас мы рассмотрим несколько примеров использования вложенных SQL запросов, при этом я, как и обещал, покажу применение вложенных запросов в разных конструкциях языка T-SQL.

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

Исходные данные для примеров

Сначала давайте определимся с исходными данными, чтобы Вы понимали, какие именно данные у нас есть, и наглядно видели, каким образом в примерах ниже получаются те или иные результаты.

Также сразу скажу, что в качестве SQL сервера у меня выступает версия Microsoft SQL Server 2017 Express.

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

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

Подробно останавливаться на том, что делает представленная выше инструкция, в этой статье я не буду, так как это совершенно другая тема, но если эта SQL инструкция Вам не понятна, и Вам интересно узнать, что конкретно она делает, можете почитать следующие статьи, а для комплексного изучения языка T-SQL — книгу, которую я уже упоминал:

Пример 1 – Вложенный запрос в секции SELECT

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

Допустим, что нам нужно получить список товаров с названием категорий, а так как названия категории в таблице Goods у нас нет, это название мы будем получать из таблицы Categories.

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

А также это можно реализовать и с помощью объединения JOIN, что на самом деле предпочтительней, и в подобных случаях я рекомендую использовать именно JOIN, тем самым SQL запрос становится более читабельным и простым для понимания. Ниже я представлю оба SQL запроса.

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

Пример 2 – Вложенный запрос в секции FROM

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

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

В данном примере в качестве источника данных в секции FROM мы указали вложенный запрос, который возвращает идентификатор и наименование товаров из первой категории.

Пример 3 – Вложенный запрос в секции JOIN

В этом примере мы используем вложенный запрос в конструкции объединения JOIN, такие вложенные запросы также называют производными таблицами, так как в этом случае они возвращают табличные данные.

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

Здесь во вложенном запросе мы получаем идентификатор и наименование первой категории, а затем полученные табличные данные объединяем с таблицей Goods.

Пример 4 – Вложенный запрос в секции WHERE

Очень часто вложенные запросы используют в условии WHERE, при этом здесь стоит понимать, с каким именно оператором сравнения используется вложенный запрос, так как это важно.

Например, если использовать вложенный запрос с оператором равно (=), то он не может возвращать больше одного значения, т.е. если он вернет больше одного значения, выйдет ошибка, и SQL запрос не выполнится. Однако если использовать вложенный запрос с оператором IN (включая NOT IN) или EXISTS (включая NOT EXISTS), то вложенный запрос уже может возвращать список значений.

Вложенный запрос с оператором = (равно)

В этом запросе мы выводим все товары из таблицы Goods, у которых идентификатор категории равен значению, которое возвращает вложенный запрос, а он возвращает идентификатор категории с наименованием «Комплектующие ПК», таким образом, в нашем случае вложенный запрос возвращает только одно значение.

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

Вложенный запрос с оператором IN

Здесь мы используем для сравнения оператор IN, поэтому вложенный запрос в таком случае может уже возвращать несколько значений, для примера мы просто уберем условие WHERE во вложенном запросе.

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

Пример 5 – Множественная вложенность SQL запросов

Как я уже отмечал, вложенный запрос может быть вложен в другой вложенный SQL запрос, тем самым получается множественная вложенность.

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

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

Дополнительные примеры использования вложенных запросов, например, с использованием оператора EXISTS, можете посмотреть в статье – Логический оператор EXISTS в T-SQL – Описание и примеры.

На сегодня у меня все, надеюсь, материал был Вам полезен, пока!

Источник

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

Дата публикации: 2017-12-13

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

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

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

Пример

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

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

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

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

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

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

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

что такое вложенные запросы для чего они нужны. Смотреть фото что такое вложенные запросы для чего они нужны. Смотреть картинку что такое вложенные запросы для чего они нужны. Картинка про что такое вложенные запросы для чего они нужны. Фото что такое вложенные запросы для чего они нужны

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *