Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Базы данных -> SQL -> Язык баз данных SQL со средствами поддержания целостности


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.

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

  1. <Специальный символ> (<special character>) является любым символом из определенного в реализации множества символов, отличным от <цифры> (<digit>) и <буквы> (<letter>). Если в реализации индикатор конца строки является символом, он также должен быть исключен из <специальных символов> (<special character>).
    Замечание: См. Формат для <перевода строки> (<newline>) в 5.3, "<Лексемы> (<token>)".
  2. Множество <специальных символов> (<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>...

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

  1. <Символ-не-кавычки> (<nonquote character>) - это любой <символ> (<character>), отличный от символа одиночной кавычки (').
  2. Тип данных <литерала символьной строки> (<character string literal>) представляет строку символов. Длина <литерала символьной строки> (<character string literal>) есть число <представлений символов> (<character representation>), которые он содержит. Каж дое <представление кавычки> (<quote representation>) в <литерале символьной строки> (<character string literal>) представляет символ одиночной кавычки как в значении, так и в длине <литерала символьной строки> (<character string literal>).
  3. Для <литерала точного числа> (<exact numeric literal>) без десятичной точки (.) неявно предполагается наличие десятичной точки после последней <цифры> (<digit>).
  4. Тип данных <литерала точного числа> (<exact numeric literal>) представляет точные числа. Точность <литерала точного числа> (<exact numeric literal>) есть число <цифр> (<digit>), которые он содержит. Масштаб <литерала точного числа> (<exact numeric literal>) есть число <цифр> (<digit>) справа от десятичной точки.
  5. Тип данных <литерала приблизительного числа> (<approximate numeric literal>) представляет приблизительные числа. Точность <литерала приблизительного числа> (<approximate numeric literal>) есть точность его <мантиссы> (<mantissa>).

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

  1. Значение <литерала символьной строки> (<character string literal>) - это последовательность содержащихся в нем <символов> (<character>).
  2. Численное значение <литерала точного числа> (<exact numeric literal>) получается путем обычной математической интерпретации знаковой позиционной десятичной записи.
  3. Численное значение <литерала приблизительного числа> (<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> ::=
              символ пробела

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

  1. <Лексическая единица> (<token>), отличная от <литерала символьной строки> (<character string literal>), не должна включать <пробел> (<space>).
  2. За любой <лексической единицей> (<tocken>) может следовать <разделитель> (<separator>). За <лексемой-не-ограничителем> (<nondelimiter tocken>) должны следовать <лескема-ограничитель> (<delimiter tocken>) или <разде литель> (<separator>). Если синтаксис не допускает на личия <лексемы-ограничителя> (<delimiter tocken>) за <лексемой-не-ограничителем> (<nondelimiter tocken>), то за <лексемой-не-ограничителем> (<nondelimiter tocken>) должен следовать <разделитель> (<separator>).
  3. <Идентификатор> (<identifier>) не должен содержать более 18 <символов> (<character>).
  4. <Идентификатор> (<identifier>) не должен совпадать с <ключевым словом> (<key word>).
  5. <Предваритель комментария> (<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>

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

  1. <Имя таблицы> (<table name>) идентифицирует именованную таблицу.
  2. Если <имя таблицы> (<table name>) не включает <идентификатора полномочий> (<authorization identifier>), то:
    a) Если <имя таблицы> (<table name>) содержится в <схеме> (<schema>), то по умолчанию предполагается <идентификатор полномочий> (<authorization identifier>), определяемый как <идентификатор полномочий схемы> (<schema authorization identifier>) данной <схемы> (<schema>).
    b) Если <имя таблицы> (<table name>) содержится в <модуле> (<module>), то по умолчанию предполагается <идентификатор полномочий> (<authorization identifier>), определяемый как <идентификатор полномочий модуля> (<module authorization identifier>) данного <модуля> (<module>).
  3. Два <имени таблицы> (<table name>) совпадают, в том и только в том случае, если они включают один и тот же <идентификатор таблицы> (<table identifier>) и один и тот же <идентификатор полномочий> (<authorization identifier>), независимо от того, явно или неявно указаны <идентификаторы полномочий> (<authorization identifier>).
  4. <Имя таблицы> (<table name>) объявляется в <определении таблицы> (<table definition>) или в <определении представления> (<view definition>).
  5. <Имя таблицы> (<table name>) в <операторе SQL> (<SQL statement>) должно идентифицировать таблицу, определенную в <схеме> (<schema>).
  6. <Идентификатор полномочий> (<authorization identifier>) представляет идентификатор полномочий.
  7. <Идентификатор> (<identifier>) объявляется как <имя кореляции> (<correlation name>) и ассоциируется с таблицей для индивидуальной области действия. Область действия <имени кореляции> (<correlation name>) - это либо <оператор выборки> (<select statement>), либо <подзапрос> (<subquery>), либо <спецификация запроса> (<query specification>) (см. 5.20, "<Раздел from> (<from clause>)"). Области действия могут быть вложенными. В разных областях действия одно и то же <имя кореляции> (<correlation name>) может быть ассоциировано с разными таблицами или с одной и той же таблицей.
  8. <Имя столбца> (<column name>) идентифицирует именованный столбец. <Идентификатор> (<identifier>) определяется как <имя столбца> (<column name>) через <определение таблицы> (<table definition>) или через <определение представления> (<view definition>).
  9. <Имя модуля> (<module name>) идентифицирует <модуль> (<module>).
  10. <Имя курсора> (<cursor name>) идентифицирует <курсор> (<cursor>).
  11. <Имя процедуры> (<procedure name>) идентифицирует <процедуру> (<procedure>).
  12. <Имя параметра> (<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>

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

  1. CHAR - это синоним для CHARACTER. DEC - это синоним для DECIMAL. INT - это синоним для INTEGER.
  2. Значение <целого без знака> (<unsigned integer>), т.е. <длина> (<lenght>> или <точность> (<precision>), должно быть больше 0.
  3. Если <длина> (<lenght>) опущена, то она предполагается равной 1. Если <масштаб> (<scale>) опущен, то предполагается равным 0. Если опущена <точность> (<precision>), то значение определяется в реализации.
  4. <Масштаб> (<scale>) для <типа точных чисел> (<exact numeric type>) не должен быть больше, чем <точность> (<precision>) для <типа точных чисел> (<exact numeric type>).
  5. CHARACTER специфицирует тип данных строк символов с длиной, специфицируемой <длиной> (<lenght>).
  6. NUMERIC специфицирует тип данных точных чисел с точностью и масштабом, специфицируемыми через <точность> (<precision>) и <масштаб> (<scale>).
  7. DECIMAL специфицирует тип данных точных чисел с масштабом, специфицируемым <масштабом> (<scale>) и определяемой в реализации точностью, равной или большей зна чения указанной <точности> (<precision>).
  8. INTEGER специфицирует тип данных точных чисел с определенной в реализации точностью и масштабом 0.
  9. SMALLINT специфицирует тип данных точных чисел с масштабом 0 и определенной в реализации точностью не большей, чем определенная в реализации точность INTEGER.
  10. FLOAT специфицирует тип данных приблизительных чисел с двоичной точностью, равной или большей значения указанной <точности> (<precision>).
  11. REAL специфицирует тип данных приблизительных чисел с определенной в реализации точностью.
  12. 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>

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

  1. <Спецификация значения> (<value specification>) специфицирует значение, которое не выбирается из таблицы.
  2. <Спецификация параметра> (<parameter specification>) идентифицирует параметр или параметр и параметр-индикатор. Тип данных параметра-индикатора должен быть типом точных чисел со шкалой 0. Конкретный <тип точных чисел> (<exact numeric type>) параметров-индикаторов определяется в реализации.
  3. <Спецификация переменной> (<variable specification>) идентифицирует переменную включающего языка или переменную включающего языка и переменную-индикатор. Тип данных переменной-индикатора должен быть определенным в реализации типом данных для параметров-индикаторов.
  4. <Спецификация цели> (<target specification>) специфицирует параметр или переменную, которым может быть присвоено значение.
  5. <Спецификация параметра> (<parameter specification>) должна содержаться в <модуле> (<module>). <Спецификация переменной> (<variable specification>) должна со держаться во <встроенном операторе SQL> (<embedded SQL statement>).
  6. Тип данных USER - это символьная строка длины, определенной в реализации.

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

  1. Если <спецификация параметра> (<parameter specification>) содержит <параметр-индикатор> (<indicator parameter>) и значение параметра-индикатора отрицательно, то значение, специфицируемое <спецификацией параметра> (<parameter specification>) - не определенное. В противном случае значение, специфицируемое <спецификацией параметра>(<parameter specification>) - это значение параметра, идентифицируемого <именем параметра> (<parameter name>).
  2. Если <спецификация переменной>(<variable specification>) содержит <переменную-индикатор> (<indicator variable>) и значение переменной-индикатора отрицательно, то значение, специфицируемое <спецификацией переменной> (<variable specification>) - не определенное. В противном случае значение, специфицируемое <спецификацией переменной> (<variable specification>) - это значение переменной, идентифицируемой <именем встроенной переменной> (<embedded variable name>).
  3. Значение, специфицируемое <литералом> (<literal>) - это значение, представляемое этим <литералом> (<literal>).
  4. Значение, специфицируемое USER, равно <идентификатору полномочий> (<authorization identifier>), указанному как <идентификатор полномочий модуля> (<module authorization identifier>) <модуля> (<module>), содержащего <оператор SQL> (<SQL statement>), выполнение которого вызвало вычисления <спецификации значения> (<value specification>) USER.

Назад | Содержание | Вперед



 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.