Введение в стандарты языка баз данных SQL


Манипулирование данными


Как и в языке SQL/89, в SQL/92 определены два набора операторов манипулирования данных. Операторы первого набора связаны с курсором, и для них осмысленно использование только в режиме встраивания в некоторый традиционный язык программирования. Операторы второго набора предназначены для индивидуального использования и могут применяться как в режиме встраивания, так и в интерактивном режиме. Общие идеи организации обоих наборов операторов манипулирования данными в SQL/92 не изменились, но их возможности существенно расширены. Поэтому в основном мы будем останавливаться на расширениях, не обсуждая подробно всю схему выполнения операторов.

3.6.1. Операторы, связанные с курсором

Для объявления курсора используется конструкция, определяемая следующими синтаксическими правилами:

<declare cursor> ::= DECLARE <cursor name> [ INSENSITIVE ] [ SCROLL ] CURSOR FOR <cursor specification> <cursor specification> ::= <query expression> [ <order by clause> ] [ <updatability clause> ] <updatability clause> ::= FOR { READ ONLY | UPDATE [ OF <column name list> ] } <order by clause> ::= ORDER BY <sort specification list> <sort specification list> ::= <sort specification> [ { <comma> <sort specification> }... ] <sort specification> ::= <sort key> [ <collate clause > ] [ <ordering specification> ] <sort key> ::= <column name> <unsigned integer> <ordering specification> ::= ASC DESC

Пояснения:

  1. Пусть T обозначает таблицу, получаемую при вычислении выражения запроса, которое входит в спецификацию курсора.
  2. Если раздел обновляемости курсора (updatabilityclause) не специфицирован, то

      (a) если спецификация курсора содержит ключевые слова INSENSITIVE, SCROLL или ORDERBY или если T является только читаемой таблицей, то по умолчанию предполагается задание раздела обновляемости с ключевым словом READONLY;

      (b) в противном случае неявно предполагается указание раздела обновляемости с ключевым словом FORUPDATE и без списка имен столбцов (т.е. предполагается, что изменения могут относиться ко всем столбцам T).




      - Начало -  - Назад -  - Вперед -