Вариативность запросов
Когда вы изучали уроки этого курса, то, возможно, задумывались: «Почему этот запрос написан так, а не иначе? Ведь его можно переписать по-другому». Действительно, почему?
Язык запросов SQL очень вариативен, и запросы часто можно «перефразировать». Как в русском языке: одну мысль можно выразить по-разному, переставив части предложений или заменив слова. Смысл высказываний может немного поменяться, но в SQL результат двух разных запросов может быть одинаковым.
Напомним, что SQL — декларативный язык. Им описывают не алгоритм, а то, что хотят получить, то есть конечный результат.
Результат можно описать по-разному, комбинируя конструкции из операторов и методы работы. Поэтому одну и ту же итоговую таблицу можно получить разными способами. И чем сложнее запрос, тем больше вариантов реализации.
Вспомните уже знакомую задачу: собрать идентификаторы, имена и фамилии пользователей, которые оформили самые крупные заказы. Декомпозировать задачу можно так:
- найти пользователей с самыми крупными заказами;
- вывести их идентификаторы, имена и фамилии.
Сравните два запроса: шаги те же, но подходы разные.
SQL
SQL
Оба запроса вернут одинаковый результат, но они написаны с применением разных методик и операторов.
Вариативность — несомненное преимущество SQL. Вам доступны любые методы и решения.
Однако не забывайте, что SQL — сложный язык, несмотря на кажущуюся простоту. Написать качественный запрос за несколько минут — удача. Даже небольшой запрос — это целый проект.
Специалисты могут тратить по несколько часов на сложные запросы. Не спешите, продумайте чёткую структуру запроса и постарайтесь его оптимизировать. Вам или вашим коллегам придётся к ним возвращаться — лучше делать запросы понятными.
Удачи!