ВУЗ:
Составители:
Рубрика:
73
Схема выполнения оператора select сервером данных включает в себя
следующие шаги.
1. Выполнение предложения from. Сервер данных либо проверяет
права на использование указанной рабочей таблицы, либо
соединяет перечисленные таблицы, либо начинает выполнять
внутренний зависимый подзапрос. При выполнении соединений
и вложенных подзапросов формируется виртуальная таблица
запроса, которая существует только на время выполнения
запросов, причем такая таблица может получить имя и
переименованные столбцы. Такие виртуальные таблицы,
существующие в рамках запроса, называют корреляциями
(псевдонимами рабочих таблиц). После первого шага
выполнения существует виртуальная таблица запроса, строки
которой заполнены.
2. Выполнение предложения where. Все строки виртуальной таблицы
запроса фильтруются в соответствии с условиями, определенными
предикатом. Предикат может возвращать значение: истина-true,
ложь-false, неизвестно-unknow. Предикаты в SQL-реализации
относятся к трехзначной логике выполняют логические операции: or
(или), and (и), not (не). Стандарт не определяет значение предиката
для таких операций, поэтому каждый конкретный сервер данных
может по-разному отфильтровать такие строки.
3. Выполнение группировки строк или предложения group by.
Группировка понимается в том смысле, что в группу включаются
строки с одинаковым значением указанного столбца.
4. Выполнение предложения having для перегруппированных
столбцов. Появление предложения having связано с
использованием агрегатных функций. Агрегатные функции
выполняют операцию над столбцом рабочей таблицы или над
частью столбца, входящей в одну группу. Предикат предложения
having включает в себя агрегатные функции, и следовательно, тоже
фильтрует строки, причем решение о включении в запрос
принимается не об одной строке, а о группе строк.
5. Выполнение предложения select – это формирование ответа на
запрос. Предложение select перечисляет имена столбцов, включая
их в ответ на запрос. Для столбцов может использоваться агрегатная
функция.
6. Выполнение объединения результатов двух или более запросов.
Операция union – объединение – включает в запрос строки из
результирующих таблиц, как запроса А, так и запроса В, причем
дублирующиеся строки включаются. Операция Intersect наоборот
исключает дублирующиеся строки. Except – исключает дубли
Страницы
- « первая
- ‹ предыдущая
- …
- 69
- 70
- 71
- 72
- 73
- …
- следующая ›
- последняя »