Лекция № 3
Тема: «Сравнение подзапросов и объединений»
План
1. Подзапросы: преимущества и недостатки
2. Объединения: преимущества и недостатки
1. Подзапросы: преимущества и недостатки
Подзапросы — это встроенные запросы внутри другого запроса. Встроенный запрос известен как внутренний запрос, а контейнерный запрос известен как внешний запрос.
Подзапросы просты в использовании, предлагают большую гибкость и могут быть легко разбиты на отдельные логические компоненты, составляющие запрос, что очень полезно при тестировании и отладке запросов.
Существует три типа подзапросов: скалярные, строчные и табличные.
Скалярные подзапросы возвращают только одну строку и один столбец (одно значение).
Подзапросы строки возвращают только одну строку, но могут иметь более одного столбца.
Подзапросы таблиц могут возвращать несколько строк и столбцов.
Подзапросы могут также использоваться в запросах INSERT, UPDATE и DELETE.
Преимущества подзапросов:
– По сравнению с объединениями подзапросы просты в использовании и легко читаются. Они не так сложны, как Join. Следовательно, часто используются начинающими разработчиками в SQL;
– Подзапросы обеспечивают другой метод для выполнения запросов к нескольким таблицам. Хотя объединения и подзапросы часто могут заменять друг друга, в некоторых случаях желаемый результат можно получить только с помощью подзапроса.
– Подзапросы структурируют запрос, чтобы изолировать каждую часть оператора, выполняют ту же операцию, которая обычно требует сложных объединений и объединений, и их легче читать.
– Подзапросы были основой для названия «Язык структурированных запросов» (SQL) из-за их легко читаемой структуры.
Недостатки подзапросов:
– Подзапросы имеют проблемы с производительностью. Использование соединения вместо подзапроса может иногда увеличить производительность до 500 раз. При наличии выбора рекомендуется использовать JOIN вместо подзапроса.
Вывод: Подзапросы следует использовать только в качестве запасного решения, если вы не можете использовать операцию JOIN для достижения вышеуказанного
2. Объединения: преимущества и недостатки
Большинство подзапросов можно переписать как объединения, а большинство объединений можно переписать как подзапросы. Объединение определяет две или более таблиц по связанному столбцу. Таблицы обычно объединяются по первичным и внешним ключам. Например, таблица sotr может иметь первичный ключ столбца id_sotr, в то время как таблица raspis также имеет столбец id_sotr, который является внешним ключом для таблицы сотрудника. Соединение SQL можно записать как «FROM sort INNER JOIN raspis ON (sort.id_sotr=raspis.id_sotr)».
Преимущества объединений :
Основным преимуществом объединения является то, что оно выполняется быстрее. Увеличение производительности может быть незаметно для конечного пользователя. Однако, поскольку столбцы имеют конкретные имена, индексируются и оптимизируются ядром базы данных, время поиска почти всегда будет быстрее, чем в подзапросе. Существуют также внутренние и внешние соединения, левые и правые соединения, полные соединения и перекрестные соединения.
Недостатки объединений:
– Недостатком использования объединений является то, что они не так легко читаются, как подзапросы.
– Может возникнуть путаница в отношении того, какой тип соединения является подходящим типом объединения, используемым для получения правильного желаемого набора результатов.
Вопросы для самопроверки
1. Какие преимущества подзапросов Вы знаете?
2. Какие недостатки подзапросов Вы знаете?
3. Что такое объединение в запросах?
4. Какие преимущества объединений в запросах Вы знаете?
5. Какие недостатки объединений в запросах Вы знаете?