Формат
<character> ::=
<digit> | <letter> | <special character>
<digit> ::=
0|1|2|3|4|5|6|7|8|9
<letter> ::=
<upper case letter> | <lower case letter>
<upper case letter> ::=
A|B|C|D|E|F|G|H|I
|J|K|L|M|N|O|P|Q|R
|S|T|U|V|W|X|Y|Z
<lower case letter> ::=
a|d|c|d|e|f|g|h|i
|j|k|l|m|n|o|p|q|r
|s|t|u|v|w|x|y|z
<special character> ::=
См. Синтаксическое правило 1.
<literal> ::=
<character string literal>
| <numeric literal>
<character string literal> ::=
'<character representation>...'
<character representation> ::=
<nonquote character>
| <quote representation>
<nonquote character ::=
См. Синтаксическое правило 1.
<quote representation> ::=
''
<numeric literal> ::=
<exact numeric literal>
| <approximate numeric literal>
<exact numeric literal> ::=
[+|-] { <unsigned integer>[.<unsigned integer>]
| <unsigned integer>.
| .<unsigned integer> }
<approximate numeric literal> ::=
<mantissa>E<exponent>
<mantissa> ::= <exact numeric literal>
<exponent> ::= <signed integer>
<signed integer> ::= [+|-] <unsigned integer>
<unsigned integer> ::=
<digit>...
<token> ::=
<nondelimiter token> | <delimiter token>
<nondelimiter token> ::=
<identifier>
| <key word>
| <numeric literal>
<identifier> ::=
<upper case letter>[{ [<underscore>]<letter or digit>}...]
<underscore> ::= _
<letter or digit> ::=
<upper case letter> | <digit>
<key word> ::=
ALL | AND | ANY | AS | ASC | AUTHORIZATION | AVG
| BEGIN | BETWEEN | BY
| CHAR | CHARACTER | CHECK | CLOSE | COBOL | COMMIT
| CONTINUE | COUNT | CREATE | CURRENT | CURSOR
| DEC | DECIMAL | DECLARE | DEFAULT | DELETE | DESC
| DISTINCT | DOUBLE
| END | ESCAPE | EXEC | EXISTS
| FETCH | FLOAT | FOR | FOREIGN | FORTRAN | FOUND
| FROM
| GO | GOTO | GRANT | GROUP | HAVING
| IN | INDICATOR | INSERT | INT | INTEGER | INTO | IS
| KEY | LANGUAGE | LIKE
| MAX | MIN | MODULE | NOT | NULL | NUMERIC
| OF | ON | OPEN | OPTION | OR | ORDER
| PASCAL | PL1 | PRECISION | PRIMARY | PRIVILEGES |
| PROCEDURE | PUBLIC
| REAL | REFERENCES | ROLLBACK
| SCHEMA | SECTION | SELECT | SET | SMALLINT | SOME
| SQL | SQLCODE | SQLERROR | SUM
| TABLE | TO | UNION | UNIQUE | UPDATE | USER
| VALUES | VIEW | WHENEVER | WHERE | WITH | WORK
<delimiter token> ::=
<character string literal>
|,|(|)|<|>|.|:|=|*|+|-|/|<>|>=|<=
<separator> ::=
{ <comment> | <space> | <newline> }...
<comment> ::=
<comment introduser> [<character>...] <newline>
<comment introduser> ::= См. Синтаксическое правило 5.
<newline> ::=
определенный в реализации индикатор конца строки
<space> ::=
символ пробела
<table name> ::= [<authorization identifier>.]
<table identifier>
<authorization identifier> ::= <identifier>
<table identifier> ::= <identifier>
<column name> ::= <identifier>
<correlation name> ::= <identifier>
<module name> ::= <identifier>
<cursor name> ::= <identifier>
<procedure name> ::= <identifier>
<parameter name> ::= <identifier>
<data type> ::=
<character string type>
| <exact numeric type>
| <approximate numeric type>
<character string type> ::=
CHARACTER [(<lenght>)]
| CHAR [(<lenght>)]
<exact numeric type> ::=
NUMERIC [(<precision> [,<scale>])]
| DECIMAL [(<precision> [,<scale>])]
| DEC [(<precision> [,<scale>])]
| INTEGER
| INT
| SMALLINT
<approximate numeric type> ::=
FLOAT [(<precision>)]
| REAL
| DOUBLE PRECISION
<lenght> ::= <unsigned integer>
<precision> ::= <unsigned integer>
<scale> ::= <unsigned integer>
<value specification> ::=
<parameter specification>
| <variable specification>
| <literal>
| USER
<target specification> ::=
<parameter specification>
| <variable specification>
<parameter specification> ::=
<parameter name> [<indicator paremeter>]
<indicator parameter> ::=
[INDICATOR] <parameter name>
<variable specification> ::=
<embedded variable name> [<indicator variable>]
<indicator variable> ::=
[INDICATOR] <embedded variable name>