Определяет терминальные символы
языка и элементы строк.
Формат
<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, и символы
знака процента и
подчеркивания.
<Символ-не-кавычки> (<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>).
Если <имя таблицы> (<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>).
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>)
идентифицирует параметр или
параметр и параметр-индикатор.
Тип данных
параметра-индикатора должен
быть типом точных чисел со
шкалой 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.
Знаете ли Вы, что cогласно релятивистской мифологии "гравитационное линзирование - это физическое явление, связанное с отклонением лучей света в поле тяжести. Гравитационные линзы обясняют образование кратных изображений одного и того же астрономического объекта (квазаров, галактик), когда на луч зрения от источника к наблюдателю попадает другая галактика или скопление галактик (собственно линза). В некоторых изображениях происходит усиление яркости оригинального источника." (Релятивисты приводят примеры искажения изображений галактик в качестве подтверждения ОТО - воздействия гравитации на свет) При этом они забывают, что поле действия эффекта ОТО - это малые углы вблизи поверхности звезд, где на самом деле этот эффект не наблюдается (затменные двойные). Разница в шкалах явлений реального искажения изображений галактик и мифического отклонения вблизи звезд - 1011 раз. Приведу аналогию. Можно говорить о воздействии поверхностного натяжения на форму капель, но нельзя серьезно говорить о силе поверхностного натяжения, как о причине океанских приливов. Эфирная физика находит ответ на наблюдаемое явление искажения изображений галактик. Это результат нагрева эфира вблизи галактик, изменения его плотности и, следовательно, изменения скорости света на галактических расстояниях вследствие преломления света в эфире различной плотности. Подтверждением термической природы искажения изображений галактик является прямая связь этого искажения с радиоизлучением пространства, то есть эфира в этом месте, смещение спектра CMB (космическое микроволновое излучение) в данном направлении в высокочастотную область. Подробнее читайте в FAQ по эфирной физике.