Використання підзапитів в sql, програмування для початківців
Продовжуємо вивчати SQL, і сьогодні ми будемо говорити про досить корисну річ в SQL це «підзапитів». Розглянемо що таке підзапит і, звичайно ж, як зазвичай напишемо кілька прикладів, для того щоб краще зрозуміти, як писати ці підзапити і в яких випадках їх краще використовувати.
І почнемо ми як завжди з теорії.
Що таке підзапит?
Підзапит - це окремий запит всередині іншого запиту, який може об'єднуватися з основним, але не обов'язково.
Використовувати підзапити буває досить зручно в деяких випадках, але пам'ятайте, що зловживати ними не потрібно. Так як це значно ускладнює план запиту і відповідно уповільнює його роботу.
Про те, що ще впливає на швидкість виконання запитів, і чого краще не треба робити можете подивитися корисні поради з написання SQL запитів.
Для наочності я спробував зобразити підзапит схематично:
В яких випадках використовувати підзапит?
Як я вже сказав писати вкладені запити направо і наліво не варто, але іноді можна.
Наприклад, коли вибірка йде з однієї таблиці, яка має певний ключ, а Вам необхідно отримати одну колонку з максимальним значенням з іншої таблицю по цьому ключу, при цьому, не об'єднуючи ці таблиці (в даному випадку підзапит пишеться в конструкції select). Або, наприклад, Вам необхідно звертатися до даних, які розташовані в багатьох таблицях, при тому, що дані, з цих таблиць будуть братися шляхом якихось обчислень і вже до цих даних Вам необхідно звертатися, це можна зробити шляхом написання запиту в конструкції from , без написання додаткових VIEW уявлень. допустимо, що Вам цей запит буде потрібно тільки один раз, і щоб не засмічувати базу, Ви не будете створювати уявлення.
Де можна використовувати підзапит?
Підзапит можна використовувати практично у всіх конструкціях, давайте розберемо самі часто використовувані.
4. При об'єднанні. Іншими словами можна здійснити об'єднання таблиці з підзапитом. приклад:
Ось такі простенькі приклади, але це не все де можна використовувати підзапит, просто це найбільш поширені варіанти використання таких запитів. Сподіваюся, стало трохи зрозуміло, і на останок давайте наведемо приклад багаторівневого запиту, просто так, він не з життя, але так теж можна писати. приклад:
В даному запиті, ми звертаємося до підзапитів, в якому в свою чергу йде об'єднання з вкладеним запитом, а в якому використовується підзапит в конструкції select.
Ось такі приклади, вони не є прикладом виходу з якихось ситуацій, на практиці вони можуть, і не знадобиться, але для загального синтаксису я їх привів. На сьогодні все, в подальшому будемо освоювати нові тонкощі SQL. Бувай. Успіхів!