Язык модулей SQL
Доклад - Компьютеры, программирование
Другие доклады по предмету Компьютеры, программирование
r by clause> ::=
ORDER BY
[{,}...]
::=
{ }
[ASC | DESC]
Синтаксические правила
- ) того же модуля.
- Любое ).
Замечание: Cм. Синтаксическое правило 7.1, ")". - Пусть Т обозначает таблицу, специфицированную в ).
a) Если указано ORDER BY, то Т является только читаемой таблицей со специфицированным порядком сортировки.
b) Если не указаны ни ORDER BY ни UNION и ) является из меняемой (updatable), то Т - изменяемая таблица.
c) Иначе Т - только читаемая таблица.
a) Если не указано UNION, то описанием Т является описание ).
b) Если указано UNION, то пусть для каждого специфицированного UNION Т1 и Т2 обозначают таблицы, которые специфицированы в ), описание результата такое же, как описание Т1 и Т2.- Если указано ORDER BY, то каждая ) должна идентифицировать столбец таблицы Т.
a) Если ).
b) Если ).
Общие правила
a) Если Т изменяемая (updatable) таблица, то курсор ассоциируется с именованной таблицей, идентифицируемой ). Пусть В обозначает эту именованную таблицу. Для каждой строки в Т существует соответствующая строка в В, из которой получена строка таблицы Т. Когда курсор установлен на строку таблицы Т, курсор также установлен на соответствующую строку таблицы В.
b) В противном случае курсор не ассоциируется с именованной таблицей.
a) Если не указано UNION, то Т - это результат указанной .
b) Если UNION указано, то пусть для каждого указанного UNION Т1 и Т2 обозначают результаты ). Результат UNION фактически порождается следующим образом: i) Инициализировать результат как пустую таблицу.
ii) Занести в результат каждую строку Т1 и каждую строку Т2
iii) Если не указано ALL , то удалить все излишние дубликаты строк из результата.
a) Если не указано ORDER BY, то:
i) Порядок строк в Т определяется реализацией.
ii) Порядок строк может может быть разным в разных транзакциях.
iii) Порядок строк Т, устанавливаемый при открытии курсора, будет таким же при следующем открытии курсора в этой же транзакции при условии, что:- Отсутствуют сторонние изменения каких-либо таблиц, указанным в спецификации курсора.
- Упорядоченный набор значений параметров, передаваемых в ), является одинаковым в обоих случаях.
Если эти условия не удовлетворяются, то упорядочение строк в Т может различаться при последовательных открытиях курсора в одной транзакции.
b) Если ORDER BY указано, то Т обладает порядком сортировки:
i) Порядок сортировки является последовательностью групп сортировки. Группа сортировки - это последовательность строк, в которых все значения столбцов сортировки идентичны. Более того, группа сортировки может быть последовательностью групп сортировки.
ii) Мощность последовательности и порядковая позиция каждой группы сортировки определяется значениями наиболее значащих столбцов сортировки. Мощность последовательности является минимальным числом групп сортировки таких, что для каждой группы сортировки с числом строк больше единицы все значения столбца сортировки идентичны.
iii) Если порядок сортировки основывается на дополнительных столбцах сортировки, то каждая группа сортировки с числом строк больше единицы является последовательностью групп сортировки. Мощность каждой последовательности и порядковая позиция каждой группы сортировки внутри каждой последовательности определяется значениями следующего наиболее значащего столбца сортировки. Мощность каждой последовательности является минимальным числом групп сортиров