Здесь мы предлагаем упрощенную версию
Здесь мы предлагаем упрощенную версию BNF-синтаксиса для SEQUEL 2. Акцент сделан на читаемости, а не на строгости, поэтому были допущены некоторые незначительные неоднозначности. Опущены некоторые возможности, которые присущи конкретно System R. Они относятся к массовой загрузке данных и управлению физическими сегментами. Кроме того, синтаксис допускает образование некоторых операторов, которые семантически бессмысленны. Более полный, но менее читаемый синтаксис используется в настоящее время в проекте System R.
В этой нотации квадратные скобки [] обозначают необязательные конструкции. Разделы, которые описывают операторы запросов, определения, манипулирования и контроля данных, относятся как к встраиваемому, так и к автономному вариантам языка. Последний раздел, который описывает операции с курсором, предназначен для использования в режиме встраивания в основной язык.
statement ::= query | dml-statement | ddl-statement | control-statement | cursor-statement
dml-statement ::= assignment | insertion | deletion | update
query ::= query-expr [ ORDER BY ord-spec-list ]
assignment ::= ASSIGN TO receiver : query-expr | ASSIGN TO receiver : CURSOR cursor-name
receiver ::= table-name [ (field-name-list) ]
field-name-list ::= field-name | field-name-list, field-name
insertion ::= INSERT INTO receiver : insert-spec
insert-spec ::= query-expr | lit-tuple
deletion ::= DELETE table-name [ var-name ] [ where-clause ]
update ::= UPDATE table-name [ var-name ] SET set-clause-list [ where-clause ]
where-clause ::= WHERE boolean | WHERE CURRENT OF cursor-name
set-clause-list ::= set-clause | set-clause-list, set-clause
set-clause ::= field-name = expr | field-name = ( query-block )
query-expr ::= query-block | query-expr set-op query-block | ( query-expr )
set-op ::= INTERSECT | UNION | MINUS
query-block ::= select-clause [ INTO target-list ] FROM from-list [ WHERE boolean ] [ GROUP BY field-spec-list [ HAVING boolean ] ]
select-clause ::= SELECT [ UNIQUE ] sel-expr-list | SELECT [ UNIQUE ] *
Содержание Назад Вперед