Які переваги та недоліки приєднання або підзапиту?

...

Запити до бази даних отримують конкретну інформацію з бази даних.

Підзапит — це запит у межах іншого запиту. Підзапит також може містити інший підзапит. Кажуть, що це «вкладені» підзапити. Об’єднання – це коли в пункті «Від» запиту посилаються на дві або більше таблиць. Різні системи баз даних можуть оптимізувати підзапити та об’єднання по-різному. Наприклад, оптимізатор DB2 перетворить підзапит на об’єднання, якщо виконуються певні критерії. У деяких випадках об’єднання дає кращу продуктивність, ніж підзапит.

Що створює підзапит

Підзапит — це оператор "SELECT" у реченнях "WHERE" або "HAVING" зовнішнього оператора "INSERT", "UPDATE", "MERGE" або "DELETE". Підзапит також називається «внутрішній запит» або «внутрішній вибір». Підзапит може містити речення "FROM" з однією або кількома таблицями і за бажанням може мати речення "WHERE", "GROUP BY" або "HAVING". Він завжди вкладений у дужки.

Відео дня

Переваги та недоліки підзапитів

Підзапити є вигідними, оскільки вони структурують запит, щоб ізолювати кожну частину оператора, виконувати ту саму операцію, яка зазвичай вимагає складних з’єднань і з’єднань і легша читати. Підзапити навіть були основою для назви «Мова структурованих запитів» (SQL) через їхню легко читану структуру. Недоліком є ​​те, що ви не можете змінити таблицю та вибрати з тієї ж таблиці в підзапиті в одному операторі SQL. Підзапити також можуть виконуватися довше, ніж об’єднання, оскільки оптимізатор бази даних обробляє їх.

Що змушує приєднатися

Більшість підзапитів можна переписати як об’єднання, а більшість об’єднань можна переписати як підзапити. Об’єднання визначає дві або більше таблиць за пов’язаним стовпцем. Таблиці зазвичай об'єднуються за первинним і зовнішнім ключами. Наприклад, таблиця співробітників може містити первинний ключ стовпця ідентифікатора співробітника, тоді як таблиця табелю робочого часу також має стовпець ідентифікатора співробітника, який є зовнішнім ключем для таблиці співробітника. Об’єднання SQL можна записати як "WHERE employee.empid = timesheet.empid" або "FROM Employee JOIN timesheet ON (employee.empid = timesheet.empid)".

Переваги та недоліки з’єднань

Основна перевага об’єднання полягає в тому, що воно виконується швидше. Кінцевий користувач може не помітити підвищення продуктивності. Однак, оскільки стовпці мають спеціальні імена, індексуються та оптимізовані механізмом бази даних, час пошуку майже завжди буде швидшим, ніж підзапит. Існують також внутрішні та зовнішні з’єднання, ліве та праве з’єднання, повне з’єднання та перехресне з’єднання. Недоліком використання об’єднань є те, що їх не так легко читати, як підзапити. Іншим недоліком є ​​те, що може бути незрозумілим, яке об’єднання є відповідним типом об’єднання для використання для отримання правильного бажаного набору результатів.