ROBOWEB : Документация : Общие элементы : html, perl, cgi, php, css, 3dmax - 3D Studio русская документация с примерами программ, RTFM и описание протоколов, описание dreamweaver, все для вебдизайнера
<Спецификация столбца> указывает именованный столбец. Смысл указания столбца зависит от контекста.
Пусть C <имя столбца> (<column name>) в <спецификации столбца> (<column specification>).
Тогда:
a) Если <спецификация столбца> (<columnspecification>) содержит <квалификатор>(<qualifier>), то <спецификация столбца> должна содержаться в области действия одного или более <иментаблиц> (<table name>) или <имен кореляции>(<correlation name>), равных <квалификатору>(<qualifier>). Если таких <имен таблиц> (<tablename>) или <имен кореляции> (<correlation name>)больше одного, то используется имя с наиболее локальной областью действия. Таблица, ассоциированнаяс указанным <именем таблицы> (<table name>) или<именем кореляции> (<correlation name>), должнавключать столбец с <именем столбца> (<column name>) C.
b) Если <спецификация столбца> (<columnspecification>) не включает <квалификатор>(<qualifier>), то она должна содержаться в областидействия одного или более <имен таблиц> (<tablename>) или <имен кореляции> (<correlation name>).Пусть фраза "возможные квалификаторы" обозначает те<имена таблиц> (<table name>) и <имена корреляций>(<correlation name>), для которых ассоциированныетаблицы включают столбец, <имя столбца> (<columnname>) которого есть C. Должен существовать в точности один возможный квалификатор с наиболее локальной областью действия, и это <имя таблицы>(<table name>) или <имя корреляции> (<correlationname>) неявно используется.
Замечание: "Область действия" <имени таблицы> (table name> или <имени кореляции> (<correlation name>) специфицируется в 5.20 "<Раздел from> (<from clause>)", 6.2, "<Определение таблицы> (<table definition>)" , 8.5, "<Оператор удаления: поисковый> (<delete statement: searched>)" , 8.11, "<Оператор модификации: позиционный> (<update statement: positioned>)" и 8.12,
"<Оператор модификации: поисковый>(<updatestatement: searched>)".
Если <спецификация столбца> (<column specification>) содержится в <выражении над таблицами> (<table expression>) T и область действия явно или неявно указанного <квалификатора> (<qualifier>) <спецификации столбца> (<column specification>) есть некоторый <оператор SQL> (<SQL statement>) или <выражение над таблицами> (<table expression>), содержащее <выражение над таблицами> (<table expression>) T, то <спецификация столбца> (<column specification>) является "внешней ссылкой" на таблицу, ассоциированную с этим <квалификатором> (<qualifier>).
Пусть T обозначает таблицу, ассоциированную с явно
или неявно специфицированным <квалификатором> (<qualifier>) R.
Тип данных <спецификации столбца> (<column specification>) есть
тип данных столбца C таблицы T.
Общие правила
"C" или "R.C" ссылаются на
столбец C данной строки T.
5.8 <Спецификация функции над множеством> (<set function specification>)
Функция
Специфицирует значение, получаемое применением функции к аргументу.
Формат
<set function specification> ::=
COUNT(*) | <distinct set function>
| <all set function>
<distinct set function> ::=
{ AVG | MAX | MIN | SUM | COUNT }
(DISTNICT <column specification>)
<all set function> ::=
{ AVG | MAX | MIN | SUM }
([ALL] <value expression>)
Синтаксические правила
Аргумент COUNT(*) и источник аргумента <функции над различными элементами множества> (<distinct set function>) и <функции надо всеми элементами множества> (<all set function>) - это таблица или группа сгруппированной таблицы в соответствии со спецификациями в 5.19, "<Выражение, вырабатывающее таблицу> (<table expression>)", 5.24, "<Подзапрос> (<subquery>)" и 5.25, "<Спецификация запроса> (<query specification>)".
Пусть R обозначает аргумент или источник аргумента <спецификации функции над множеством> (<set function specification>).
<Спецификация столбца> (<column specification>) <функции над различными элементами множества> (<distinct function specification>) и каждая <спецификация столбца> (<column specification>) в <выражении, вырабатывающем значение> (<value expression>) <функции надо всеми элементами множества> (<all set function>) должны недвусмысленно ссылаться на столбец R и не должны ссылаться на столбец, порожденный из <спецификации функции над множеством> (<set function specification>).
<Выражение, вырабатывающее значение> (<value expression>) <функции надо всеми элементами множества> должно включать <спецификацию столбца> (<column specification>), которая ссылается на столбец R, и не должно включать <спецификацию функции над множеством> (<set function specification>). Если <спецификация столбца> (<column specification>) является внешней ссылкой, то <выражение, вырабатывающее значение> (<value expression>) не должно включать никаких операторов. Замечание: "Внешняя ссылка" определяется в 5.7, "<Спецификация столбца> (<column specifiction">).
Если <спецификация функции над множеством> (<set function specification>) содержит <спецификацию столбца> (<column specificaton>), являющуюся внешней ссылкой, то <спецификации функции над множеством> (<set function specification>) должна содержаться в <подзапросе> (<subquery>) <статьи having> (<having clause>).
Замечание: "Внешняя
ссылка" определяется в 5.7, "<Спецификация столбца> (<column specifiction">).
Пусть T тип данных значений, являющихся результатами вычисления <спецификации столбца> (<column specification>) или <выражения, вырабатывающего значение> (<value expression>).
Если указывается COUNT, то тип данных результата <спецификации функции над множеством> (<set function specification>) - это тип точных чисел с определенной в реализации точностью и масштабом 0.
Если указывается MAX или MIN, то тип данных результата есть T.
Если указывается SUM или AVG, то:
a) тип T не должен быть типом символьных строк.
b) если указывается SUM и T - тип точных чисел с масштабом S, то тип данных результата - тип точных чисел с определенной в реализации точностью и масштабом S.
c) если указывается AVG и T - тип точных чисел с масштабом S, то тип данных результата - тип точных чисел с определенными в реализации точностью и масштабом.
d) если T - тип приблизительных чисел, то тип результата - тип
приблизительных чисел с определенной в реализации точностью.
Общие правила
Аргументом <функции над различными элементами множества> (<distinct set function>) является множество значений. Это множество получается путем удаления неопределенных значений и всех избыточных дублирующих значений из столбца R, на который ссылается <спецификация столбца> (<column specification>).
Аргументом <функции надо всеми элементами множества> (<all set function>) является мультимножество значений. Это мультимножество получается путем удаления всех неопределенных значений из результата применения <выражения, вырабатывающего значение> (<value expression>) к каждой строке R. Указание или неуказание ALL не влияет на смысл <функции надо всеми элементами множества> (<all set function>).
Пусть S обозначает аргумент <функции над различными элементами множества> (<distinct set function>) или <функции надо всеми элементами множества> (<all set function>).
Тогда:
a) Если задается <функция над различными элементами множества> (<distinct set function>) COUNT, то результатом является мощность S.
b) Если задается функция COUNT(*), то результатом является мощность R.
c) Если задается функция AVG, MAX, MIN или SUM и S пусто, то результатом является неопределенное значение.
d) Если задается MAX или MIN, то результатом является, соответственно, максимальное или минимальное значение в S. Эти результаты определяются с использованием правил сравнения, определенных в 5.11,
"<comparison predicate>".
e) Если задается SUM, то результатом является суммазначений в S. Сумма должна быть в пределах диапазона значений типа данных результата.
f) Если задается AVG, то результатом является среднеезначение значений
в S. Сумма значений в S должнабыть в пределах диапазона значений типа данных
результата.
<Выражение, вырабатывающее значение> (<value expression>), включающее <функцию над различными элементами множества>, не должно включать никаких двухместных операторов.
Первый <символ> (<character>) <лексемы> (<token>), следующей за одноместным оператором, не должен быть знаком плюс или минус.
Если тип данных <первичного выражения> (<primary>) является типом символьных строк, то <выражение, вырабатывающее значение> (<value expression>) не должно включать никаких операторов. Типом данных результата является тип символьных строк.
Если тип данных обоих операндов оператора является типом точных чисел, то тип данных результата является типом точных чисел с точностью и масштабом, определяемыми следующим образом:
a) Пусть s1 и s2 - масштабы первого и второго операндов, соответственно.
b) Точность результата сложения и вычитания определяется в реализации, и масштаб есть max(s1,s2).
c) Точность результата умножения определяется в реализации, и масштаб есть s1+s2.
d) Точность и масштаб результата деления определяются в реализации.
Если тип данных какого-либо операнда оператора
является типом приблизительных чисел, то тип данных результата есть тип
приблизительных чисел. Точность результата определяется в реализации.
Общие правила
Если значение <первичного выражения> (<primary>) является неопределенным значением, то результатом <выражения, вырабатывающего значение> (<value expression>) является неопределенное значение.
Если операторы не указаны, то результатом <выражения, вырабатывающего значение> (<value expression>) является значение указанного <первичного выражения> (<primary>).
Когда <выражение, вырабатывающее значение> (<value expression>) применяется к строке таблицы, каждая ссылка на столбец этой таблицы является ссылкой на значение этого столбца в этой строке.
Одноместные арифметические операторы + и - специфицируют одноместный плюс и одноместный минус, соответственно. Одноместный плюс не изменяет своего операнда. Одноместный минус изменяет знак своего операнда.
Двухместные арифметические операторы +, -, * и / специфицируют сложение, вычитание, умножение и деление соответственно. Делитель не должен быть равен 0.
Если типом результата арифметического оператора является тип целых чисел, то:
a) Если оператор не оператор деления, то математический результат операции должен быть точно представим с точностью и масштабом типа результата.
b) Если оператор - это оператор деления, то приближенный математический результат операции, представленный с точностью и масштабом типа результата не должен терять никаких лидирующих значащих цифр.
Первыми вычисляются выражения в скобках. Когда
порядок вычисления не определяется скобками, одноместные операторы
применяются перед операторами умножения и деления, операторы умножения и
деления применяются перед операторами сложения и вычитания, и операторы
одного уровня предшествования применяются слева направо.
5.10 <Предикат> (<predicate>)
Функция
Специфицирует условие, для которого может быть вычислено истиностное значение "true", "false" или "unknown".
Тип данных первого <выражения, вырабатывающего
результат> (<value expression>) и <подзапроса>
(<subquery>) или второго <выражения, вырабатывающего значение>
(<value expression>) должны быть сравнимыми.
Общие правила
Пусть x обозначает результат первого <выражения, вырабатывающего значение> (<value expression>) и пусть y обозначает результат <подзапроса> (<subquery>) или второго <выражения, вырабатывающего значение> (<value expression>). Мощность результата <подзапроса> (<subquery>) не должна быть больше единицы.
Если x или y являются неопределенными значениями или если результат <подзапроса> (<subquery>) пустой, то результатом "x <comp op> y" является unknown.
Если x и y являются не неопределенными значениями,
то результатом "x <comp op> y" является true или false: "x = y" есть true тогда и только тогда, когда x и y равны. "x <> y" есть true тогда и только тогда, когда x и y не равны. "x < y" есть true тогда и только тогда, когда x меньше, чем y. "x > y" есть true тогда и только тогда, когда x больше, чем y. "x <= y" есть true тогда и только тогда, когда x не больше, чем y. "x >= y" есть true тогда и только тогда, когда x не меньше, чем y.
Числа сравниваются в соответствии с их алгебраическими значениями.
Сравнение двух символьных строк определяется через сравнение <символов> (<character>) с одинаковыми порядковыми позициями. Если строки не имеют одинаковую длину, то сравнение производится с рабочей копией более короткой строки, дополненной справа пробелами <space> таким образом, чтобы она имела длину, равную длине другой строки.
Две строки равны, если все <символы> (<character>) с одинаковыми порядковыми позициями совпадают. Если две строки не равны, то их отношение определяется на основе сравнения первой пары неравных <символов> (<character>) с левого конца строк. Это сравнение производится в соответствии с определенной в реализации последовательностью сопоставления.
Хотя "x = y" есть unknown, если x и y
являются неопределенными значениями, в контекстах GROUP BY, ORDER BY и
DISTINCT неопределенное значение идентично или является дубликатом другого
неопределенного значения.< /li >