| 
 |  
  |  
| 
  
 |  
| 
  
 
5. Общие элементы
5.1 <Символ> (<character>) 
Функция
  Определяет терминальные символы языка и элементы строк.
 Формат
 
     <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.
 Синтаксические правила
 
-  <Специальный  символ>  (<special  character>) является любым символом из определенного в реализации  множества   символов,  отличным  от  <цифры>  (<digit>)  и  <буквы>   (<letter>).  Если в реализации индикатор  конца  строки   является  символом,  он  также  должен быть исключен из   <специальных символов> (<special character>).
  Замечание: См. Формат для <перевода строки> (<newline>) в 5.3, "<Лексемы> (<token>)".
 -  Множество <специальных символов> (<special character>)   должно включать  все  символы,  отличные   от   <цифры>   (<digit>) и <буквы> (<letter>),  встречающиеся в терминальных продукциях языка SQL,  и символы знака процента        и подчеркивания.
  
Общие правила
  Нет.
 5.2 <Литерал> (<literal>)
Функция
  Определяет не неопределенное значение
 Формат
 
     <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>...
Синтаксические правила
 
-  <Символ-не-кавычки> (<nonquote character>) - это любой   <символ> (<character>),  отличный  от символа одиночной   кавычки (').
 -  Тип  данных  <литерала  символьной строки> (<character   string literal>) представляет  строку  символов.  Длина   <литерала   символьной   строки>   (<character   string   literal>)   есть   число    <представлений    символов>   (<character representation>), которые он содержит. Каж  дое <представление кавычки> (<quote representation>)  в   <литерале   символьной   строки>   (<character   string   literal>) представляет символ одиночной кавычки  как  в   значении,  так  и  в длине <литерала символьной строки>        (<character string literal>).
 -  Для <литерала точного числа> (<exact numeric literal>)   без десятичной точки (.) неявно предполагается  наличие   десятичной точки после последней <цифры> (<digit>).
 -  Тип данных <литерала точного  числа>  (<exact  numeric   literal>) представляет точные числа. Точность <литерала   точного числа> (<exact  numeric  literal>)  есть  число   <цифр> (<digit>), которые он содержит. Масштаб <литерала точного числа> (<exact numeric literal>) есть  число   <цифр> (<digit>) справа от десятичной точки.
 -  Тип   данных    <литерала    приблизительного    числа>   (<approximate numeric  literal>) представляет приблизительные числа.  Точность   <литерала   приблизительного   числа>  (<approximate  numeric  literal>) есть точность   его <мантиссы> (<mantissa>).
  
Общие правила
 
-  Значение  <литерала  символьной  строки>   (<character   string literal>)  - это последовательность содержащихся   в нем <символов> (<character>).
 -  Численное  значение  <литерала  точного числа> (<exact   numeric literal>) получается  путем  обычной  математической  интерпретации  знаковой  позиционной десятичной   записи.
 -  Численное  значение  <литерала приблизительного числа>   (<approximate numeric literal>) есть результат  умножения точного численного значения,  представленного <мантиссой> (<mantissa>), на число, полученное путем возведения числа  10  в  степень,  представляемую <порядком>   (<exponent>).
  
5.3 <Лексема> (<token>)
Функция
  Определяет лексические единицы.
 Формат
 
     <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> ::=
              символ пробела
Синтаксические правила
 
-  <Лексическая единица> (<token>), отличная от <литерала   символьной строки>  (<character  string  literal>),  не   должна включать <пробел> (<space>).
 -  За  любой <лексической единицей> (<tocken>) может следовать <разделитель> (<separator>). За <лексемой-не-ограничителем>  (<nondelimiter  tocken>) должны следовать   <лескема-ограничитель> (<delimiter tocken>) или <разде  литель> (<separator>).  Если синтаксис не допускает на  личия <лексемы-ограничителя>  (<delimiter  tocken>)  за   <лексемой-не-ограничителем> (<nondelimiter tocken>), то   за <лексемой-не-ограничителем> (<nondelimiter  tocken>)  должен следовать <разделитель> (<separator>).
 -  <Идентификатор>  (<identifier>)  не  должен  содержать   более 18 <символов> (<character>).
 -  <Идентификатор> (<identifier>) не должен  совпадать  с   <ключевым словом> (<key word>).
 -  <Предваритель комментария> (<comment introduser>) есть   последовательность двух или более дефисов (-),  не раз  деленных ни одним <пробелом> (<space>)  или  <переводом   строки> (<newline>) и не входящих в <литерал символьной   строки> (<character string literal>).
  
Общие правила
  Нет.
 5.4 Имена
Функция
  Специфицирует имена
 Формат
 
     <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>
Синтаксические правила
 
-  <Имя  таблицы> (<table name>) идентифицирует именованную таблицу.
 -  Если <имя таблицы> (<table name>) не включает <идентификатора полномочий> (<authorization identifier>), то:
  a) Если <имя таблицы> (<table name>) содержится в <схеме> (<schema>),  то  по   умолчанию   предполагается <идентификатор полномочий> (<authorization identifier>),  определяемый как <идентификатор  полномочий  схемы>  (<schema authorization identifier>) данной <схемы> (<schema>).
   b) Если  <имя таблицы> (<table name>) содержится в <модуле> (<module>),  то  по  умолчанию  предполагается <идентификатор полномочий> (<authorization identifier>), определяемый как <идентификатор полномочий  модуля>  (<module  authorization identifier>) данного <модуля> (<module>).
 -  Два <имени таблицы> (<table name>) совпадают,  в том и    только в том случае,  если они включают один и тот  же    <идентификатор  таблицы> (<table identifier>) и один и    тот  же  <идентификатор  полномочий>   (<authorization    identifier>), независимо от того, явно или неявно указаны   <идентификаторы   полномочий>   (<authorization    identifier>).
 -  <Имя  таблицы> (<table name>) объявляется в <определении таблицы> (<table definition>) или  в  <определении    представления> (<view definition>).
 -  <Имя  таблицы>  (<table name>) в <операторе SQL> (<SQL    statement>) должно идентифицировать  таблицу,  определенную в <схеме> (<schema>).
 -  <Идентификатор полномочий> (<authorization identifier>) представляет идентификатор полномочий.
 -  <Идентификатор>  (<identifier>)  объявляется  как <имя    кореляции> (<correlation name>) и ассоциируется с таблицей для  индивидуальной  области  действия.  Область    действия <имени кореляции> (<correlation name>) -  это    либо  <оператор  выборки>  (<select statement>),  либо    <подзапрос> (<subquery>),  либо <спецификация запроса>    (<query  specification>)  (см.  5.20,  "<Раздел  from>    (<from clause>)").  Области  действия    могут быть вложенными. В разных областях действия одно    и то же <имя  кореляции>  (<correlation  name>)  может    быть  ассоциировано  с разными таблицами или с одной и  той же таблицей.
 -  <Имя столбца> (<column name>) идентифицирует именованный столбец.  <Идентификатор> (<identifier>) определяется  как <имя столбца> (<column name>) через <определение таблицы> (<table definition>) или через <определение представления> (<view definition>).
 -  <Имя модуля> (<module name>)  идентифицирует  <модуль>  (<module>).
 -  <Имя курсора> (<cursor name>) идентифицирует <курсор>  (<cursor>).
 -  <Имя  процедуры>  (<procedure  name>)  идентифицирует  <процедуру> (<procedure>).
 -  <Имя параметра> (<parameter name>) идентифицирует параметр.
  
Общие правила
  Нет.
 5.5 <Тип данных> <data type>
Функция
  Специфицирует тип данных.
 Формат
 
     <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>
Синтаксические правила
 
-  CHAR - это синоним для CHARACTER.  DEC -  это  синоним  для DECIMAL. INT - это синоним для INTEGER.
 -  Значение <целого без знака> (<unsigned integer>), т.е.  <длина> (<lenght>> или <точность> (<precision>), должно быть больше 0.
 -  Если <длина> (<lenght>) опущена, то она предполагается  равной 1.  Если <масштаб> (<scale>) опущен, то предполагается  равным  0.   Если   опущена   <точность>    (<precision>), то значение определяется в реализации.
 -  <Масштаб> (<scale>) для <типа  точных  чисел>  (<exact    numeric type>)  не должен быть больше,  чем <точность>    (<precision>) для <типа точных чисел> (<exact  numeric    type>).
 -  CHARACTER специфицирует тип данных строк символов с  длиной, специфицируемой <длиной> (<lenght>).
 -  NUMERIC  специфицирует  тип данных точных чисел с точностью и масштабом,  специфицируемыми через <точность>    (<precision>) и <масштаб> (<scale>).
 -  DECIMAL специфицирует тип данных точных чисел с  масштабом, специфицируемым <масштабом> (<scale>) и определяемой в реализации точностью, равной или большей зна   чения указанной <точности> (<precision>).
 -  INTEGER  специфицирует тип данных точных чисел с определенной в реализации точностью и масштабом 0.
 -  SMALLINT специфицирует тип данных точных чисел с масштабом 0 и определенной в реализации точностью не большей, чем определенная в реализации точность INTEGER.
 -  FLOAT специфицирует тип данных приблизительных  чисел с двоичной точностью, равной или большей значения указанной <точности> (<precision>).
 -  REAL специфицирует тип данных приблизительных чисел с   определенной в реализации точностью.
 -  DOUBLE  PRECISION  специфицирует тип данных приблизительных чисел  с  определенной  в реализации точностью большей,  чем определенная в реализации  точность  для  REAL.
  
Общие правила
  Нет.
 5.6 <Спецификация  значения>  (<value  specification>)  и   <спецификация цели>) (<target specification>)
Функция
  Специфицируют одно или более значений, параметров или пе-
ременных.
 Формат
 
     <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>
Синтаксические правила
 
-  <Спецификация значения> (<value specification>) специфицирует значение, которое не выбирается из таблицы.
 -  <Спецификация параметра>  (<parameter  specification>)    идентифицирует параметр  или параметр и параметр-индикатор. Тип данных параметра-индикатора должен быть типом  точных чисел со шкалой 0.  Конкретный <тип точных    чисел> (<exact numeric  type>)  параметров-индикаторов определяется в реализации.
 -  <Спецификация переменной>  (<variable  specification>)    идентифицирует переменную  включающего языка или переменную включающего языка и  переменную-индикатор.  Тип    данных  переменной-индикатора должен быть определенным    в реализации типом данных для параметров-индикаторов.
 -  <Спецификация  цели> (<target specification>) специфицирует параметр или  переменную,  которым  может  быть    присвоено значение.
 -  <Спецификация параметра>  (<parameter  specification>)    должна содержаться в <модуле> (<module>).  <Спецификация переменной> (<variable specification>) должна  со   держаться во <встроенном операторе SQL> (<embedded SQL   statement>).
 -  Тип данных USER - это символьная строка  длины, определенной в реализации.
  
Общие правила
 
-  Если <спецификация параметра> (<parameter    specification>) содержит <параметр-индикатор>    (<indicator parameter>) и значение параметра-индикатора отрицательно,  то значение, специфицируемое <спецификацией параметра> (<parameter specification>) -  не   определенное.  В противном случае значение, специфицируемое    <спецификацией    параметра>(<parameter    specification>) - это значение параметра,  идентифицируемого <именем параметра> (<parameter name>).
 -  Если <спецификация переменной>(<variable    specification>) содержит   <переменную-индикатор>    (<indicator variable>) и значение переменной-индикатора отрицательно,  то значение, специфицируемое <спецификацией  переменной> (<variable specification>) - не   определенное. В противном случае значение,  специфицируемое <спецификацией    переменной>    (<variable    specification>) - это значение переменной, идентифицируемой   <именем   встроенной  переменной>  (<embedded   variable name>).
 -  Значение,  специфицируемое  <литералом>  (<literal>) -  это значение,    представляемое    этим    <литералом>  (<literal>).
 -  Значение,  специфицируемое USER, равно <идентификатору  полномочий>  (<authorization identifier>),  указанному   как   <идентификатор   полномочий   модуля>   (<module  authorization identifier>) <модуля> (<module>), содержащего <оператор SQL>  (<SQL  statement>),  выполнение  которого  вызвало  вычисления  <спецификации значения>  (<value specification>) USER.
  
Назад | Содержание | Вперед 
 
 | 
 | 
 
 
 
 | 
  
 
 
 
  |  
  |  
| 
 |  
 
 
| Внимание! Любой из материалов, опубликованных на этом сервере, не может быть  воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее... |   
 |