Язык модулей SQL

Доклад - Компьютеры, программирование

Другие доклады по предмету Компьютеры, программирование

r by clause> ::=

ORDER BY

[{,}...]

::=

{ }

[ASC | DESC]

Синтаксические правила

  1. ) того же модуля.
  2. Любое ).
    Замечание: Cм. Синтаксическое правило 7.1, ")".
  3. Пусть Т обозначает таблицу, специфицированную в ).

  4. a) Если указано ORDER BY, то Т является только читаемой таблицей со специфицированным порядком сортировки.
    b) Если не указаны ни ORDER BY ни UNION и ) является из меняемой (updatable), то Т - изменяемая таблица.
    c) Иначе Т - только читаемая таблица.

  5. a) Если не указано UNION, то описанием Т является описание ).
    b) Если указано UNION, то пусть для каждого специфицированного UNION Т1 и Т2 обозначают таблицы, которые специфицированы в ), описание результата такое же, как описание Т1 и Т2.
  6. Если указано ORDER BY, то каждая ) должна идентифицировать столбец таблицы Т.
    a) Если ).
    b) Если ).

Общие правила


  1. a) Если Т изменяемая (updatable) таблица, то курсор ассоциируется с именованной таблицей, идентифицируемой ). Пусть В обозначает эту именованную таблицу. Для каждой строки в Т существует соответствующая строка в В, из которой получена строка таблицы Т. Когда курсор установлен на строку таблицы Т, курсор также установлен на соответствующую строку таблицы В.
    b) В противном случае курсор не ассоциируется с именованной таблицей.

  2. a) Если не указано UNION, то Т - это результат указанной .
    b) Если UNION указано, то пусть для каждого указанного UNION Т1 и Т2 обозначают результаты ). Результат UNION фактически порождается следующим образом: i) Инициализировать результат как пустую таблицу.

  3. ii) Занести в результат каждую строку Т1 и каждую строку Т2
    iii) Если не указано ALL , то удалить все излишние дубликаты строк из результата.

  4. a) Если не указано ORDER BY, то:

  5. i) Порядок строк в Т определяется реализацией.
    ii) Порядок строк может может быть разным в разных транзакциях.
    iii) Порядок строк Т, устанавливаемый при открытии курсора, будет таким же при следующем открытии курсора в этой же транзакции при условии, что:
  6. Отсутствуют сторонние изменения каких-либо таблиц, указанным в спецификации курсора.
  7. Упорядоченный набор значений параметров, передаваемых в ), является одинаковым в обоих случаях.
    Если эти условия не удовлетворяются, то упорядочение строк в Т может различаться при последовательных открытиях курсора в одной транзакции.

b) Если ORDER BY указано, то Т обладает порядком сортировки:


  1. i) Порядок сортировки является последовательностью групп сортировки. Группа сортировки - это последовательность строк, в которых все значения столбцов сортировки идентичны. Более того, группа сортировки может быть последовательностью групп сортировки.
    ii) Мощность последовательности и порядковая позиция каждой группы сортировки определяется значениями наиболее значащих столбцов сортировки. Мощность последовательности является минимальным числом групп сортировки таких, что для каждой группы сортировки с числом строк больше единицы все значения столбца сортировки идентичны.
    iii) Если порядок сортировки основывается на дополнительных столбцах сортировки, то каждая группа сортировки с числом строк больше единицы является последовательностью групп сортировки. Мощность каждой последовательности и порядковая позиция каждой группы сортировки внутри каждой последовательности определяется значениями следующего наиболее значащего столбца сортировки. Мощность каждой последовательности является минимальным числом групп сортиров