Применимые привилегии для
каждого <имени таблицы>
(<table name>), содержащегося в
<выражении, вырабатывающем
таблицу> (<table expression>),
должны включать SELECT. Замечание: "Применимые
<привилегии> (<privileges>)"
для <имени таблицы> (<table
name>) определяются в 6.10,
"<определение привилегий>
(<privileges definition>)".
a) Если <спецификация
результата> (<result specification>)
"*" указана в
<подзапросе> (<subquery>)
какого-либо <предиката>
(<predicate>), отличного от
<предиката exists> (<exists
predicate>), то степень
<выражения, вырабатываающего
таблицу> (<table expression>)
должна быть равна 1 и
<спецификация результата>
(<result specification>) эквивалентна
<выражению, вырабатывающему
значение> (<value expression>),
состоящему из <спецификации
столбца> (<column specification>),
указывающей на единственный
столбец <выражения,
вырабатывающего таблицу>
(<table expression>).
b) Если <спецификация
результата> (<result specification>)
"*" указана в
<подзапросе> (<subquery>)
<предиката exists> (<exists
predicate>), то <спецификация
результата> (<result specification>)
эквивалентна произвольному
<выражению, вырабатывающему
значение> (<value expression>), не
включающему <спецификацию
функции над множеством> (<table
expression>) и допустимому в
<подзапросе> (<subquery>).
Тип данных значений
<подзапроса> (<subquery>) есть
тип данных явного или неявного
<выражения, вырабатывающего
значение> (<value expression>).
Пусть R обозначает результат
<выражения, вырабатывающего
таблицу> (<table expression>).
Каждая <спецификация
столбца> (<column specification>) в
<выражении, вырабатывающем
значение> (<value expression>)
должна недвусмысленно
ссылаться на столбец R.
Если R - это сгруппированное
представление, то
<спецификация результата>
(<result specification>) не должна
содержать <спецификацию
функции над множеством> (<set
function specification>).
Если R - это сгруппированная
таблица, то каждая
<спецификация столбца>
(<column specification>) в <выражении,
вырабатывающем значение>
(<value expression>) должна
указывать на столбец
группирования или быть
специфицированной внутри
<спецификации функции над
множеством> (<set function
specification>). Если R это не
сгруппированная таблица и
<выражение, вырабатывающее
значение> (<value expression>)
включает <спецификацию
функции над множеством> (<set
function specification>), то каждая
<спецификация столбца>
(<column specification>) в <выражении,
вырабатывающем значение>
(<value expression>) должна быть
указана внутри <спецификации
функции над множеством> (<set
function specification>).
<Ключевое слово> (<key word>)
DISTINCT не должно
специфицироваться более
одного раза в <подзапросе>
(<subquery>), включая любой
<подзапрос> (<subquery>),
содержащийся в этом
<подзапросе> (<subquery>).
Если <подзапрос> (<subquery>)
специфицируется в <предикате
сравнения> (<comparison predicate>),
то <выражение, вырабатывающее
таблицу> (<table expression>) не
должно содержать <раздел group
by> (<group by clause>) или <раздел
having> (<having clause>) и не должно
идентифицировать
сгруппированное
представление.
Общие правила
Если R не является
сгруппированной таблицей и
<выражение, вырабатывающее
значение> (<value expression>)
включает <спецификацию
функции над множеством> (<set
function specification>), то R является
аргументом или источником
аргумента каждой
<спецификации функции над
множеством> (<set function
specification>) в <выражении,
вырабатывающем значение>
(<value expression>) и результат
<подзапроса> (<subquery>) есть
значение, специфицированное
<выражением, вырабатывающем
значение> (<value expression>).
Если R не является
сгруппированной таблицей и
<выражение, вырабатывающее
значение> (<value expression>) не
включает <спецификацию
функции над множеством> (<set
function specification>), то <выражение,
вырабатывающее значение>
(<value expression>) применяется к
каждой строке R, образуя
мультимножество из n значений,
где n - мощность R. Если не
указано ключевое слово DISTINCT, то
это мультимножество является
результатом <подзапроса>
(<subquery>). Если DISTINCT указано,
то результатом <подзапроса>
(<subquery>) является множество
значений, получаемое из этого
мультимножества удалением
любых избыточных дублирующих
значений.
Если R - сгруппированная
таблица, то <выражение,
вырабатывающее значение>
(<value expression>) применяется к
каждой группе R, образуя
мультимножество из n значений,
где n - число групп в R. Когда
<выражение, вырабатывающее
значение> (<value expression>)
применяется к данной группе R,
эта группа является аргументом
или источником аргумента
каждой <спецификации функции
над множеством> (<set function
specification>) в <выражении,
вырабатывающем значение>
(<value expression>). Если не указано
ключевое слово DISTINCT, то это
мультимножество является
результатом <подзапроса>
(<subquery>). Если DISTINCT указано,
то результатом <подзапроса>
(<subquery>) является множество
значений, получаемое из этого
мультимножества удалением
любых избыточных дублирующих
значений.
Применимые привилегии для
каждого <имени таблицы>
(<table name>), содержащегося в
<выражении, вырабатывающем
таблицу> (<table expression>),
должны включать SELECT. Замечание: "Применимые
<привилегии> (<privileges>)"
для <имени таблицы> (<table
name>) определяются в 6.10,
"<определение привилегий>
(<privileges definition>)".
Пусть R обозначает результат
<выражения, вырабатывающего
таблицу> (<table specification>).
Степень таблицы,
специфицированной через
<спецификацию запроса>
(<query specification>) равна мощности
<списка выборки> (<select
list>).
<Список выборки> (<select list>)
"*" эквивалентен
последовательности
<выражений, вырабатывающих
значение> (<value expression>), в
которой каждое <выражение,
вырабатывающее значение>
(<value expression>) является
<спецификацией столбца>
(<column specification>), указывающей
на столбец R, и каждый столбец R
указывается ровно один раз.
Столбцы указываются в порядке
возрастания номеров их
исходных позиций внутри R.
Каждая <спецификация
столбца> (<column specification>) в
каждом <выражении,
вырабатывающем значение>
(<value expression>) должна
однозначно указывать на
столбец R. <Ключевое слово>
(<key word>) DISTINCT не должно
указываться более одного раза
в <спецификации запроса>
(<query specification>) за исключением
любого <подзапроса>
(<subquery>) этой <спецификации
запроса> (<query specification>).
Если R - это сгруппированное
представление, то <список
выборки> (<select list>) не
должен содержать
<спецификацию функции над
множеством> (<set function
specification>).
Если R - это сгруппированная
таблица, то каждая
<спецификация столбца>
(<column specification>) в каждом
<выражении, вырабатывающем
значение> (<value expression>)
должна указывать на столбец
группирования или быть
специфицированной внутри
<спецификации функции над
множеством> (<set function
specification>). Если R - это не
сгруппированная таблица и
какое-либо <выражение,
вырабатывающее значение>
(<value expression>) включает
<спецификацию функции над
множеством> (<set function
specification>), то каждая
<спецификация столбца>
(<column specification>) в любом
<выражении, вырабатывающем
значение> (<value expression>)
должна быть указана внутри
<спецификации функции над
множеством> (<set function
specification>).
Каждый столбец таблицы,
являющейся результатом
<спецификации запроса>
(<query specification>), имеет тот же
тип данных, длину, точность и
масштаб, что и <выражение,
вырабатывающее значение>
(<value expression>), из которого он
получен.
Если i-ое <выражение,
вырабатывающее значение>
(<value expression>) в <списке
выборки> (<select list>) состоит
из единственной
<спецификации столбца>
(<column specification>), то i-ый
столбец результата есть
именованный столбец с <именем
столбца> (<column name>),
соответствующим
<спецификации столбца>
(<column specification>). В противном
случае i-ый столбец является
неименованным.
На столбец таблицы, которая
является результатом
<спецификации столбца>
(<column specification>),
накладывается ограничение
содержать только не
неопределенные значения в том
и только в том случае, когда это
именованный столбец с
ограничением содержать только
не неопределенные значения.
<Спецификация запроса>
(<query specification>) является
изменяемой (updatable) в том и
только в том случае, когда
выдерживаются следующие
условия:
a) Ключевое слово DISTINCT не
указано.
b) Каждое <выражение,
вырабатывающее значение>
(<value expression>) в <списке
выборки> (<select list>) состоит
из <спецификации столбца>
(<column specification>), и ни одна
<спецификация столбца>
(<column specification>) не появляется
более одного раза.
c) <Раздел from> (<from clause>)
<выражения, выраба тывающего
таблицу> (<table expression>)
специфицирует в точности одну
<ссылку на таблицу> (<table
reference>), и эта <ссылка на
таблицу> (<table reference>)
указывает либо на базовую
таблицу, либо на порожденную
таблицу, являющуюся изменяемой
(updatable).
d) <Раздел where> (<where clause>)
<выражения, вырабатывающего
таблицу> (<table expression>) не
содержит <подзапроса>
(<subquery>).
e) <Выражение, вырабатывающее
таблицу> (<table expression>) не
включает <раздела group by>
(<group by clause>) или <раздела
having> (<having clause>).
Общие правила
Если R не является
сгруппированной таблицей и
<список выборки> (<select list>)
включает <спецификацию
функции над множеством> (<set
function specification>), то R является
аргументом или источником
аргумента каждой
<спецификации функции над
множеством> (<set function
specification>) в <списке выборки>
(<select list>) и результат
<спецификации запроса>
(<query specification>) есть таблица,
состоящая из одной строки. I-ое
значение строки есть значение,
специфицированное i-ым
<выражением, вырабатывающим
значение> (<value expression>).
Если R не является
сгруппированной таблицей и
<список выборки> (<select list>)
не включает <спецификацию
функции над множеством> (<set
function specification>), то каждое
<выражение, вырабатывающее
значение> (<value expression>)
применяется к каждой строке R,
образуя таблицу из m строк, где m
- мощность R. I-ый столбец
таблицы содержит значения,
полученные применением i-ого
<выражения, вырабатывающего
значение> (<value expression>). Если
не указано ключевое слово DISTINCT,
то эта таблица является
результатом <спецификации
запроса> (<query specification>).
Если DISTINCT указано, то
результатом <спецификации
запроса> (<query specification>)
является таблица, получаемая
из этой таблицы удалением
любых избыточных дублирующих
значений.
Если R - сгруппированная
таблица с нулевым числом групп,
то результатом <спецификации
запроса> (<query specification>)
является пустая таблица.
Если R - сгруппированная
таблица с одной или более
групп, то каждое <выражение,
вырабатывающее значение>
(<value expression>) применяется к
каждой группе R, образуя
таблицу из m строк, где m - число
групп в R. I-ый столбец таблицы
содержит значения, полученные
применением i-ого <выражения,
вырабатывающего значения>
(<value expression>). Когда
<выражение, вырабатывающее
значение> (<value expression>)
применяется к данной группе R,
эта группа является аргументом
или источником аргумента
каждой <спецификации функции
над множеством> (<set function
specification>) в <выражении,
вырабатывающем значение>
(<value expression>). Если не указано
ключевое слово DISTINCT, то эта
таблица является результатом
<спецификации запроса>
(<query specification>). Если DISTINCT
указано, то результатом
<спецификации запроса>
(<query specification>) является
таблица, получаемая из этой
таблицы удалением любых
избыточных дублирующих строк.
Строка является дубликатом
другой строки в том и только в
том случае, когда все пары
значений с одной и той же
порядковой позицией идентичны.
<Идентификатор полномочий
схемы> (<schema authorization identifier>)
должен быть отличным от
<идентификатора полномочий
схемы> (<schema authorization identifier>)
любой другой <схемы>
(<schema>) в той же самой среде.
Понятие среды определяется в
реализации.
Если <имя таблицы> (<table
name>) содержит <идентификатор
полномочий> (<authorization
identifier>), то этот
<идентификатор полномочий>
(<authorization identifier>) должен быть
таким же, как <идентификатор
полномочий схемы> (<schema
authorization identifier>) содержащей
схемы.
<Имя таблицы> (<table name>)
должно быть отличным от
<имени таблицы> (<table name>)
любого другого <определения
таблицы> (<table definition>) или
<определения представления>
(<view definition>) содержащей
<схемы> (<schema>).
<Определение таблицы> (<table
definition>) должно содержать по
меньшей мере одно
<определение столбца> (<column
definition>).
Областью действия <имени
таблицы> (<table name>) является
<определение таблицы> (<table
definition>).
Описание таблицы, определенной
через <определение таблицы>
(<table definition>) включает имя
<имя таблицы> (<table name>) и
описание столбцов,
специфицированное каждым
<определением столбца>
(<column definition>. Описание i-го
столбца предоставляется i-ым
<определением столбца>
(<column definition>).
Общие правила
<Определение таблицы> (<table
definition>) определяет базовую
таблицу.
<Имя столбца> (<column name>)
должно быть отличным от
<имени столбца> (<column name>)
любого другого <определения
столбца> (<column definition>)
содержащегося в <определении
таблицы> (<table definition>).
I-ый столбец таблицы
описывается i-ым
<определением столбца>
(<column definition>) в <определении
таблицы> (<table definition>). Имя и
тип данных столбца
определяются <именем
столбца> (<column name>) и
<типом данных> (<data type>)
соответственно.
Пусть C обозначает <имя
столбца> (<column name>) в
<определении столбца> (<column
definition>).
Если указано NOT NULL, то неявно
вводится следующее
<определение проверочного
ограничения> (<check constraint
definition>): CHECK (C IS NOT NULL)
Если не указано NOT NULL и не
указан <раздел умолчания>
(<default clause>), то неявно
вводится DEFAULT NULL.
Если указана <спецификация
уникальности> (<unique
specification>), то неявно вводится
следующее <определение
ограничения уникальности>
(<unique constraint definition>):
<unique specification> (C)
Замечание: <Спецификация
уникальности> (<unique
specification>) определяется в 6.6,
"<определение ограничения
уникальности> (<unique constraint
definition>)".
Если указана <спецификация
ссылок> (<references specification>), то
неявно вводится следующее
<определение ограничения
ссылок> (<referential constraint
definition>):
FOREIGN KEY(C) <references specification>
Замечание: <Спецификация
ссылок> (<references specification>)
определяется в 6.7,
"<определение ограничения
ссылок> (<referential constraint
definition>)".
Если указано CHECK, то каждая
<спецификация столбца>
(<column specification>) в <условии
поиска> (<search condition>) должна
ссылаться на столбец C, и неявно
вводится следующее
<определение проверочного
ограничения> (<check constraint
definition):
CHECK (<search condition>)
Описание столбца,
определенного через
<определение столбца> (<column
definition>), включает имя <имя
столбца> (<column name>) и тип
данных, специфицированный
<типом данных> (<data type>).
Знаете ли Вы, что релятивизм (СТО и ОТО) не является истинной наукой? - Истинная наука обязательно опирается на причинность и законы природы, данные нам в физических явлениях (фактах). В отличие от этого СТО и ОТО построены на аксиоматических постулатах, то есть принципиально недоказуемых догматах, в которые обязаны верить последователи этих учений. То есть релятивизм есть форма религии, культа, раздуваемого политической машиной мифического авторитета Эйнштейна и верных его последователей, возводимых в ранг святых от релятивистской физики. Подробнее читайте в FAQ по эфирной физике.