Учебник MySQL SubQuery с примерами

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

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

Давайте рассмотрим синтаксис подзапроса –

Общей жалобой клиентов в MyFlix Video Library является низкое количество названий фильмов. Руководство хочет купить фильмы для категории с наименьшим количеством названий.

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

Это дает результат

Посмотрим, как работает этот запрос

Вышеприведенная форма является строкой Sub-Query . В таких подзапросах внутренний запрос может дать только ОДИН результат. Допустимыми операторами при работе с подзапросами строк являются [=,>, =, <=,,! =,]

Давайте посмотрим на другой пример,

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

Посмотрим, как работает этот запрос

В этом случае внутренний запрос возвращает более одного результата. Вышеупомянутый тип T -поднабора y.

 

До сих пор мы видели два запроса, теперь посмотрим пример тройного запроса !!!

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

Мы можем выполнить запрос типа

Вышеприведенный запрос дает следующий результат:

Подзапросы Vs объединяются!

При сравнении с Joins подзапросы просты в использовании и легко читаются. Они не такие сложные, как Joins

Следовательно, они часто используются новичками SQL.

Но в подзапросах есть проблемы с производительностью. Использование соединения вместо подзапроса может иногда увеличивать производительность до 500 раз.

Учитывая выбор, рекомендуется использовать JOIN по второму запросу.

Суб-запросы следует использовать только в качестве резервного решения, если вы не можете использовать операцию JOIN для достижения вышеуказанного

Резюме

  • Подзапросы – это встроенные запросы внутри другого запроса. Встроенный запрос известен как внутренний запрос, а запрос контейнера известен как внешний запрос.
  • Sub-запросы просты в использовании, обладают большой гибкостью и могут быть легко разбиты на отдельные логические компоненты, составляющие запрос, что очень полезно при тестировании и отладке запросов.
  • MySQL поддерживает три типа подзапросов, скалярные, строковые и табличные подзапросы.
  • Скалярные вспомогательные запросы возвращают только одну строку и один столбец.
  • Строковые подзапросы возвращают только одну строку, но могут иметь более одного столбца.
  • Подзапросы таблицы могут возвращать несколько строк, а также столбцы.
  • Подзапросы могут также использоваться в запросах INSERT, UPDATE и DELETE.
  • Для проблем с производительностью, когда дело доходит до получения данных из нескольких таблиц, настоятельно рекомендуется использовать JOINs вместо подзапросов. Sub-запросы должны использоваться только по уважительной причине.
0 ответы

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

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

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