Учебно-практическое пособие москва 2017 ббк



Pdf көрінісі
бет132/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   128   129   130   131   132   133   134   135   ...   243
Байланысты:
Язык SQL. Базовый курс

6.4 Подзапросы
Прежде чем приступить к рассмотрению столь сложной темы, как подзапросы, опи-
шем, как в общем случае работает команда SELECT. Согласно описанию этой коман-
ды, приведенному в документации на PostgreSQL, дело, в несколько упрощенном ви-
де, обстоит так.
1. Сначала вычисляются все элементы, приведенные в списке после ключевого
слова FROM. Под такими элементами подразумеваются не только реальные таб-
лицы, но также и виртуальные таблицы, создаваемые с помощью ключевого
слова VALUES. Если таблиц больше одной, то формируется декартово произве-
дение из множеств их строк. Например, в случае двух таблиц будут сформиро-
ваны попарные комбинации каждой строки из одной таблицы с каждой строкой
из другой таблицы. При этом в комбинированных строках сохраняются все ат-
рибуты из каждой исходной таблицы.
2. Если в команде присутствует условие WHERE, то из полученного декартова про-
изведения исключаются строки, которые этому условию не соответствуют. Та-
ким образом, первоначальное множество строк, сформированное без всяких
условий, сужается.
3. Если присутствует предложение GROUP BY, то результирующие строки группи-
руются на основе совпадения значений одного или нескольких атрибутов, а за-
тем вычисляются значения агрегатных функций. Если присутствует предложе-
ние HAVING, то оно отфильтровывает результирующие строки (группы), не удо-
влетворяющие критерию.
4. Ключевое слово SELECT присутствует всегда. Но в списке выражений, идущих
после него, могут быть не только простые имена атрибутов, но и их комбина-
ции, созданные с использованием арифметических и других операций, а также
вызовы функций. Причем эти функции могут быть не только встроенные, но и
созданные пользователем. В списке выражений не обязаны присутствовать
все
135


атрибуты, представленные в строках используемых таблиц. Например, атрибу-
ты, на основе которых формируются условия в предложении WHERE, могут от-
сутствовать в списке выражений после ключевого слова SELECT. Предложение
SELECT DISTINCT удаляет дубликаты строк.
5. Если присутствует предложение ORDER BY, то результирующие строки сорти-
руются на основе значений одного или нескольких атрибутов. По умолчанию
сортировка производится по возрастанию значений.
6. Если присутствует предложение LIMIT или OFFSET, то возвращается только под-
множество строк из выборки.
Приведенная схема описывает работу команды SELECT на логическом уровне, а на
уровне реализации запросов в дело вступает планировщик, который и формирует
план выполнения запроса.
А теперь перейдем непосредственно к теме этого параграфа — подзапросам.
Предположим, что сотрудникам аналитического отдела потребовалось провести ста-
тистическое исследование финансовых результатов работы авиакомпании. В каче-
стве первого шага они решили подсчитать количество операций бронирования, в ко-
торых общая сумма превышает среднюю величину по всей выборке.


Достарыңызбен бөлісу:
1   ...   128   129   130   131   132   133   134   135   ...   243




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет