46332 (Общие элементы SQL)

2016-08-02СтудИзба

Описание файла

Документ из архива "Общие элементы SQL", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "46332"

Текст из документа "46332"

Общие элементы SQL

5.1 ()

Функция

Определяет терминальные символы языка и элементы строк.

Формат

::=

| |

::=

0|1|2|3|4|5|6|7|8|9

::=

|

::=

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

::=

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

::=

См. Синтаксическое правило 1.

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

  1. () является любым символом из определенного в реализации множества символов, отличным от () и (). Если в реализации индикатор конца строки является символом, он также должен быть исключен из ().
    Замечание: См. Формат для () в 5.3, " ()".

  2. Множество () должно включать все символы, отличные от () и (), встречающиеся в терминальных продукциях языка SQL, и символы знака процента и подчеркивания.

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

Нет.

5.2 ()

Функция

Определяет не неопределенное значение

Формат

::=

|

::=

'...'

::=

|

См. Синтаксическое правило 1.

::=

''

::=

|

::=

[+|-] { [.]

| .

| . }

::=

E

::=

::=

::= [+|-]

::=

...

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

  1. () - это любой (), отличный от символа одиночной кавычки (').

  2. Тип данных () представляет строку символов. Длина () есть число (), которые он содержит. Каж дое () в () представляет символ одиночной кавычки как в значении, так и в длине ().

  3. Для () без десятичной точки (.) неявно предполагается наличие десятичной точки после последней ().

  4. Тип данных () представляет точные числа. Точность () есть число (), которые он содержит. Масштаб () есть число () справа от десятичной точки.

  5. Тип данных () представляет приблизительные числа. Точность () есть точность его ().

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

  1. Значение () - это последовательность содержащихся в нем ().

  2. Численное значение () получается путем обычной математической интерпретации знаковой позиционной десятичной записи.

  3. Численное значение () есть результат умножения точного численного значения, представленного (), на число, полученное путем возведения числа 10 в степень, представляемую ().

5.3 ()

Функция

Определяет лексические единицы.

Формат

::=

|

::=

|

|

::=

[{ []}...]

::= _

::=

|

::=

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

::=

|,|(|)||.|:|=|*|+|-|/|<>|>=|<=

::=

{ | | }...

::=

[...]

::= См. Синтаксическое правило 5.

::=

определенный в реализации индикатор конца строки

::=

символ пробела

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

  1. (), отличная от (), не должна включать ().

  2. За любой () может следовать (). За () должны следовать () или (). Если синтаксис не допускает на личия () за (), то за () должен следовать ().

  3. () не должен содержать более 18 ().

  4. () не должен совпадать с ().

  5. () есть последовательность двух или более дефисов (-), не раз деленных ни одним () или () и не входящих в ().

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

Нет.

5.4 Имена

Функция

Специфицирует имена

Формат

::= [.]

::=

::=

::=

::=

::=

::=

::=

::=

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

  1. (

    ) идентифицирует именованную таблицу.

  2. Если (

    ) не включает (), то:
    a) Если (
    ) содержится в (), то по умолчанию предполагается (), определяемый как () данной ().
    b) Если (
    ) содержится в (), то по умолчанию предполагается (), определяемый как () данного ().

  3. Два (

    ) совпадают, в том и только в том случае, если они включают один и тот же (
    ) и один и тот же (), независимо от того, явно или неявно указаны ().

  4. (

    ) объявляется в (
    ) или в ().

  5. (

    ) в () должно идентифицировать таблицу, определенную в ().

  6. () представляет идентификатор полномочий.

  7. () объявляется как () и ассоциируется с таблицей для индивидуальной области действия. Область действия () - это либо (), либо (), либо () (см. 5.20, " ()"). Области действия могут быть вложенными. В разных областях действия одно и то же () может быть ассоциировано с разными таблицами или с одной и той же таблицей.

  8. () идентифицирует именованный столбец. () определяется как () через (

    ) или через ().

  9. () идентифицирует ().

  10. () идентифицирует ().

  11. () идентифицирует ().

  12. () идентифицирует параметр.

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

Нет.

5.5

Функция

Специфицирует тип данных.

Формат

::=

|

|

::=

CHARACTER [()]

| CHAR [()]

::=

NUMERIC [( [,])]

| DECIMAL [( [,])]

| DEC [( [,])]

| INTEGER

| INT

| SMALLINT

::=

FLOAT [()]

| REAL

| DOUBLE PRECISION

::=

::=

::=

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

  1. CHAR - это синоним для CHARACTER. DEC - это синоним для DECIMAL. INT - это синоним для INTEGER.

  2. Значение (), т.е. (> или (), должно быть больше 0.

  3. Если () опущена, то она предполагается равной 1. Если () опущен, то предполагается равным 0. Если опущена (), то значение определяется в реализации.

  4. () для () не должен быть больше, чем () для ().

  5. CHARACTER специфицирует тип данных строк символов с длиной, специфицируемой ().

  6. NUMERIC специфицирует тип данных точных чисел с точностью и масштабом, специфицируемыми через () и ().

  7. DECIMAL специфицирует тип данных точных чисел с масштабом, специфицируемым () и определяемой в реализации точностью, равной или большей зна чения указанной ().

  8. INTEGER специфицирует тип данных точных чисел с определенной в реализации точностью и масштабом 0.

  9. SMALLINT специфицирует тип данных точных чисел с масштабом 0 и определенной в реализации точностью не большей, чем определенная в реализации точность INTEGER.

  10. FLOAT специфицирует тип данных приблизительных чисел с двоичной точностью, равной или большей значения указанной ().

  11. REAL специфицирует тип данных приблизительных чисел с определенной в реализации точностью.

  12. DOUBLE PRECISION специфицирует тип данных приблизительных чисел с определенной в реализации точностью большей, чем определенная в реализации точность для REAL.

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

Нет.

5.6 () и ) ()

Функция

Специфицируют одно или более значений, параметров или пе- ременных.

Формат

::=

|

|

| USER

::=

|

::=

[]

::=

[INDICATOR]

::=

[]

::=

[INDICATOR]

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

  1. () специфицирует значение, которое не выбирается из таблицы.

  2. () идентифицирует параметр или параметр и параметр-индикатор. Тип данных параметра-индикатора должен быть типом точных чисел со шкалой 0. Конкретный () параметров-индикаторов определяется в реализации.

  3. () идентифицирует переменную включающего языка или переменную включающего языка и переменную-индикатор. Тип данных переменной-индикатора должен быть определенным в реализации типом данных для параметров-индикаторов.

  4. () специфицирует параметр или переменную, которым может быть присвоено значение.

  5. () должна содержаться в (). () должна со держаться во ().

  6. Тип данных USER - это символьная строка длины, определенной в реализации.

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

  1. Если () содержит () и значение параметра-индикатора отрицательно, то значение, специфицируемое () - не определенное. В противном случае значение, специфицируемое () - это значение параметра, идентифицируемого ().

  2. Если () содержит () и значение переменной-индикатора отрицательно, то значение, специфицируемое () - не определенное. В противном случае значение, специфицируемое () - это значение переменной, идентифицируемой ().

  3. Значение, специфицируемое () - это значение, представляемое этим ().

  4. Значение, специфицируемое USER, равно (), указанному как () (), содержащего (), выполнение которого вызвало вычисления () USER.

()

Функция

Указание именованного столбца.

Формат

::=

[.]

::=

|

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

  1. указывает именованный столбец. Смысл указания столбца зависит от контекста.

  2. Пусть C () в ().

  3. Тогда:
    a) Если () содержит (), то должна содержаться в области действия одного или более (

    ) или (), равных (). Если таких () или ()больше одного, то используется имя с наиболее локальной областью действия. Таблица, ассоциированнаяс указанным (
    ) или (), должнавключать столбец с () C.
    b) Если () не включает (), то она должна содержаться в областидействия одного или более () или ().Пусть фраза "возможные квалификаторы" обозначает те (
    ) и (), для которых ассоциированныетаблицы включают столбец, () которого есть C. Должен существовать в точности один возможный квалификатор с наиболее локальной областью действия, и это (
    ) или () неявно используется.
    Замечание: "Область действия" (table name> или () специфицируется в 5.20 " ()", 6.2, " (
    )" , 8.5, " ()" , 8.11, " ()" и 8.12, "()".

  4. Если () содержится в (

    ) T и область действия явно или неявно указанного () () есть некоторый () или (
    ), содержащее (
    ) T, то () является "внешней ссылкой" на таблицу, ассоциированную с этим ().

  5. Пусть T обозначает таблицу, ассоциированную с явно или неявно специфицированным () R. Тип данных () есть тип данных столбца C таблицы T.

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

  1. "C" или "R.C" ссылаются на столбец C данной строки T.

5.8 ()

Функция

Специфицирует значение, получаемое применением функции к аргументу.

Формат

::=

COUNT(*) |

|

::=

{ AVG | MAX | MIN | SUM | COUNT }

(DISTNICT )

::=

{ AVG | MAX | MIN | SUM }

([ALL] )

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

  1. Аргумент COUNT(*) и источник аргумента () и () - это таблица или группа сгруппированной таблицы в соответствии со спецификациями в 5.19, " (

    )", 5.24, " ()" и 5.25, " ()".

  2. Пусть R обозначает аргумент или источник аргумента ().

  3. () () и каждая () в () () должны недвусмысленно ссылаться на столбец R и не должны ссылаться на столбец, порожденный из ().

  4. () должно включать (), которая ссылается на столбец R, и не должно включать (). Если () является внешней ссылкой, то () не должно включать никаких операторов.
    Замечание: "Внешняя ссылка" определяется в 5.7, " ().

  5. Если () содержит (), являющуюся внешней ссылкой, то () должна содержаться в () ().
    Замечание: "Внешняя ссылка" определяется в 5.7, " ().

  6. Пусть T тип данных значений, являющихся результатами вычисления () или ().

  7. Если указывается COUNT, то тип данных результата () - это тип точных чисел с определенной в реализации точностью и масштабом 0.

  8. Если указывается MAX или MIN, то тип данных результата есть T.

  9. Если указывается SUM или AVG, то:
    a) тип T не должен быть типом символьных строк.
    b) если указывается SUM и T - тип точных чисел с масштабом S, то тип данных результата - тип точных чисел с определенной в реализации точностью и масштабом S.
    c) если указывается AVG и T - тип точных чисел с масштабом S, то тип данных результата - тип точных чисел с определенными в реализации точностью и масштабом.
    d) если T - тип приблизительных чисел, то тип результата - тип приблизительных чисел с определенной в реализации точностью.

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

  1. Аргументом () является множество значений. Это множество получается путем удаления неопределенных значений и всех избыточных дублирующих значений из столбца R, на который ссылается ().

  2. Аргументом () является мультимножество значений. Это мультимножество получается путем удаления всех неопределенных значений из результата применения () к каждой строке R. Указание или неуказание ALL не влияет на смысл ().

  3. Пусть S обозначает аргумент () или ().

  4. Тогда:
    a) Если задается () COUNT, то результатом является мощность S.
    b) Если задается функция COUNT(*), то результатом является мощность R.
    c) Если задается функция AVG, MAX, MIN или SUM и S пусто, то результатом является неопределенное значение.
    d) Если задается MAX или MIN, то результатом является, соответственно, максимальное или минимальное значение в S. Эти результаты определяются с использованием правил сравнения, определенных в 5.11, "".
    e) Если задается SUM, то результатом является суммазначений в S. Сумма должна быть в пределах диапазона значений типа данных результата.
    f) Если задается AVG, то результатом является среднеезначение значений в S. Сумма значений в S должнабыть в пределах диапазона значений типа данных результата.

5.9 ()

Функция

Специфицирует значение.

Формат

::=

| +

| -

::=

| *

| /

::=

[+|-]

::=

|

|

| ( )

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

  1. (), включающее , не должно включать никаких двухместных операторов.

  2. Первый () (), следующей за одноместным оператором, не должен быть знаком плюс или минус.

  3. Если тип данных () является типом символьных строк, то () не должно включать никаких операторов. Типом данных результата является тип символьных строк.

  4. Если тип данных обоих операндов оператора является типом точных чисел, то тип данных результата является типом точных чисел с точностью и масштабом, определяемыми следующим образом:
    a) Пусть s1 и s2 - масштабы первого и второго операндов, соответственно.
    b) Точность результата сложения и вычитания определяется в реализации, и масштаб есть max(s1,s2).
    c) Точность результата умножения определяется в реализации, и масштаб есть s1+s2.
    d) Точность и масштаб результата деления определяются в реализации.

  5. Если тип данных какого-либо операнда оператора является типом приблизительных чисел, то тип данных результата есть тип приблизительных чисел. Точность результата определяется в реализации.

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

  1. Если значение () является неопределенным значением, то результатом () является неопределенное значение.

  2. Если операторы не указаны, то результатом () является значение указанного ().

  3. Когда () применяется к строке таблицы, каждая ссылка на столбец этой таблицы является ссылкой на значение этого столбца в этой строке.

  4. Одноместные арифметические операторы + и - специфицируют одноместный плюс и одноместный минус, соответственно. Одноместный плюс не изменяет своего операнда. Одноместный минус изменяет знак своего операнда.

  5. Двухместные арифметические операторы +, -, * и / специфицируют сложение, вычитание, умножение и деление соответственно. Делитель не должен быть равен 0.

  6. Если типом результата арифметического оператора является тип целых чисел, то:
    a) Если оператор не оператор деления, то математический результат операции должен быть точно представим с точностью и масштабом типа результата.
    b) Если оператор - это оператор деления, то приближенный математический результат операции, представленный с точностью и масштабом типа результата не должен терять никаких лидирующих значащих цифр.

  7. Первыми вычисляются выражения в скобках. Когда порядок вычисления не определяется скобками, одноместные операторы применяются перед операторами умножения и деления, операторы умножения и деления применяются перед операторами сложения и вычитания, и операторы одного уровня предшествования применяются слева направо.

5.10 ()

Функция

Специфицирует условие, для которого может быть вычислено истиностное значение "true", "false" или "unknown".

Формат

::=

|

|

|

|

|

|

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

Нет.

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

  1. Результат () получается его применением к данной строке таблицы.

5.11 ()

Функция

Специфицирует сравнение двух значений.

Формат

::=

{ | }

::=

= | <> | | =

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

  1. Тип данных первого () и () или второго () должны быть сравнимыми.

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

  1. Пусть x обозначает результат первого () и пусть y обозначает результат () или второго (). Мощность результата () не должна быть больше единицы.

  2. Если x или y являются неопределенными значениями или если результат () пустой, то результатом "x y" является unknown.

  3. Если x и y являются не неопределенными значениями, то результатом "x y" является true или false: "x = y" есть true тогда и только тогда, когда x и y равны. "x <> y" есть true тогда и только тогда, когда x и y не равны. "x y" есть true тогда и только тогда, когда x больше, чем y. "x = y" есть true тогда и только тогда, когда x не меньше, чем y.

  4. Числа сравниваются в соответствии с их алгебраическими значениями.

  5. Сравнение двух символьных строк определяется через сравнение () с одинаковыми порядковыми позициями. Если строки не имеют одинаковую длину, то сравнение производится с рабочей копией более короткой строки, дополненной справа пробелами таким образом, чтобы она имела длину, равную длине другой строки.

  6. Две строки равны, если все () с одинаковыми порядковыми позициями совпадают. Если две строки не равны, то их отношение определяется на основе сравнения первой пары неравных () с левого конца строк. Это сравнение производится в соответствии с определенной в реализации последовательностью сопоставления.

  7. Хотя "x = y" есть unknown, если x и y являются неопределенными значениями, в контекстах GROUP BY, ORDER BY и DISTINCT неопределенное значение идентично или является дубликатом другого неопределенного значения.

()

Функция

Специфицирует сравнение с интервалом.

Формат

::=

[NOT] BETWEEN AND

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

  1. Типы данных всех трех () должны быть сравнимыми.

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

  1. Пусть x, y и z обозначают результаты первого, второго и третьего (), соответственно.

  2. Результат "x BETWEEN y AND z" тот же самый, что и результат "x >= y AND x <= z".

  3. Результат "x NOT BETWEEN y AND z" тот же самый, что и результат "NOT (x BETWEEN y AND z)".

5.13 ()

Функция

Специфицирует сравнение с квантором.

Формат

::=

[NOT] IN

{ | () }

::=

{ , }...

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

  1. Типы данных первого () и () или всех () в () должны быть сравнимыми.

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

  1. Пусть x обозначает результат (). Пусть S обозначает результат () как в () или значения, определенные через (), рассматриваемые как значения строк единственного столбца таблицы степени один.

  2. Результат "x IN S" тот же самый, что и результат "x = ANY S". Результат "x NOT IN S" тот же самый, что и результат "NOT (x IN S)".

5.14 ()

Функция

Специфицирует сравнение по совпадению с образцом.

Формат

::=

[NOT] LIKE

[ESCAPE ]

::=

::=

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

  1. () должна указывать на столбец символьных строк.

  2. Тип данных () должен быть типом символьных строк.

  3. Тип данных () должен быть типом символьных строк длины 1.

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

  1. Пусть x обозначает значение, указываемое (), и пусть y обозначает результат () ().

  2. Тогда:
    a) Если указывается (), то:


    • i) Пусть z обозначает результат () ().
      ii) Должно существовать разбиение строки y на подстроки такое, что каждая подстрока имеет длину 1 или 2, никакая подстрока длины 1 не содержит символа escape z, и каждая подстрока длины 2 начинается с символа escape z, за которым следует либо символ escape z, либо символ подчеркивания, либо символ знака процента. В этом разбиении y каждая подстрока длины 2 представляет одно вхождение второго символа этой подстроки. Каждая подстрока длины 1, содержащая символ подчеркивания, представляет спецификатор произвольного символа. Каждая подстрока длины 1, содержащая знак процента, представляет спецификатор произвольной строки. Каждая подстрока длины 1, не содержащая ни символа подчеркивания, ни символа знака процента, представляет символ, который она содержит.


b) Если () не указан, то каждый символ подчеркивания в y представляет спецификатор произвольного символа, каждый символ знака процента в y представляет спецификатор произвольной строки, и каждый символ в y, который не является ни символом подчеркивания, ни символом знака процента, представляет сам этот символ.

  1. Строка y является последовательностью минимального числа спецификаторов подстрок таких, что каждый () y является частью в точности одного спецификатора подстроки. Спецификатор подстроки - это спецификатор произвольного символа, спецификатор произвольной подстроки или любая последовательность (), не являющаяся спецификатором произвольного символа или спецификатором произвольной строки.

  2. Результатом "x LIKE y" является unknown, если x или y представляют неопределенное значение. Если x и y представляют не неопределенные значения, то значением "x LIKE y" является либо true, либо false.

  3. Результатом "x LIKE y" является true, если существует разбиение x на подстроки такое, что:
    a) Подстрока x является последовательностью нуля или более подряд идущих () x, и каждый () x есть часть в точности одной подстроки.
    b) Если i-ый спецификатор подстроки y является спецификатором произвольного символа, i-ая подстрока x состоит из одного произвольного ().
    c) Если i-ый спецификатор подстроки y является спецификатором произвольной строки, i-ая подстрока x является произвольной последовательностью нуля или более ().
    d) Если i-ый спецификатор подстроки y не является ни спецификатором произвольного символа, ни спецификатором произвольной строки, i-ая подстрока x совпадает с этим спецификатором подстроки и имеет ту же длину, что этот спецификатор подстроки.
    e) Число подстрок x равно числу спецификаторов подстрок y.

  4. Результат "x NOT LIKE y" такой же, как результат "NOT (x LIKE y)".

5.15 ()

Функция

Специфицирует проверку значения на неопределенность.

Формат

::=

IS [NOT] NULL

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

Нет.

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

  1. Пусть x обозначает значение, указываемое ().

  2. Результатом "x IS NULL" является true или false.

  3. Результатом "x IS NULL" является true, если и только если x представляет неопределенное значение.

  4. Результат "x IS NOT NULL" такой же, как результат "NOT (x IS NULL)".

5.16 ()

Функция

Специфицирует сравнение с квантором.

Формат

::=

::=

|

::= ALL

::= SOME | ANY

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

  1. Типы данных () и () должны быть сравнимы.

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

  1. Пусть x обозначает результат () и пусть S обозначает результат ().

  2. Результат "x S" вырабатывается путем применения подразумеваемого () "x s" к каждому значению S:
    a) Если S пусто или если значение подразумеваемого () равно true для каждого значения s в S, то значение "x S" есть true.
    b) Если значение подразумеваемого () равно false хотя бы для одного значения s в S, то значение "x S" есть false.
    c) Если значение подразумеваемого () равно true хотя бы для одного значения s в S, то значение "x S" есть true.
    d) Если S пусто или если значение подразумеваемого () равно false для каждого значения s в S, то значение "x S" есть false.
    e) Если результатом "x S" не является ни true, ни false, то результатом является unknown.

5.17 ()

Функция

Специфицирует проверку множества на пустоту.

Формат

::=

EXISTS

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

Нет.

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

  1. Пусть S обозначает результат ().

  2. Результатом "EXISTS S" является либо true, либо false.

  3. Результатом "EXISTS S" является true, если и только если S не пусто.

5.18 ()

Функция

Специфицирует условие, которое может быть "true", "false" или "unknown" в зависимости от результата применения булевских операторов к указанным условиям.

Формат

::=

| OR

::=

| AND

::=

[NOT]

::=

| ()

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

  1. () или (), указанные в (), непосредственно содержатся в этом (), если () или () не указываются внутри () или () этого ().

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

  1. Результат получается применением указанных булевских операторов к условиям, являющимся результатами применения каждого указанного () к данной строке таблицы или данной группе сгруппированной таблицы. Если булевские операторы не указаны, то результатом () является результат указанного ().

  2. NOT(true) есть false, NOT(false) есть true и NOT(unknown) есть unknown. AND и OR определяются следующими таблицами истинности:

  3. ЪДДДДДДДДВДДДДДДДДВДДДДДДДДВДДДДДДДї

  4. іAND іtrue іfalse іunknownі

  5. ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДґ

  6. іtrue іtrue іfalse іunknownі

  7. ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДґ

  8. іfalse іfalse іfalse іfalse і

  9. ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДґ

  10. іunknown іunknown іfalse іunknownі

  11. АДДДДДДДДБДДДДДДДДБДДДДДДДДБДДДДДДДЩ

  12. ЪДДДДДДДДВДДДДДДДДВДДДДДДДДВДДДДДДДї

  13. іOR іtrue іfalse іunknownі

  14. ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДґ

  15. іtrue іtrue іtrue іtrue і

  16. ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДґ

  17. іfalse іtrue іfalse іunknownі

  18. ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДґ

  19. іunknown іtrue іunknown іunknownі

  20. АДДДДДДДДБДДДДДДДДБДДДДДДДДБДДДДДДДЩ

  21. Сначала вычисляются выражения в скобках. Когда порядок вычисления не определяется скобками, NOT применяется перед AND, AND применяется перед OR, и операторы с одинаковым уровнем предшествования применяются слева направо.

  22. Когда () применяется к строке таблицы, каждая ссылка на столбец этой таблицы через (), прямо содержащуюся в (), является ссылкой на значение этого столбца в этой строке.

5.19 ()

Функция

Специфицирует таблицу или сгруппированную таблицу.

Формат

::=

[]

[]

[]

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

  1. Если таблица, идентифицируемая в (), является сгруппированным представлением, то (

    ) не должно содержать (), () или ().

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

  1. Если все необязательные разделы опущены, то результирующая таблица является результатом (). В противном случае каждый указанный раздел применяется к результату раздела, указанного перед ним, и результирующая таблица является результатом применения последнего указанного раздела. Результатом (

    ) является порожденная таблица, в которой i-ый столбец наследует описание i-ого столбца таблицы, специфицированной через ().

5.20 ()

Функция

Специфицирует таблицу, порожденную из одной или более именованных таблиц.

Формат

::=

FROM

[{,
}...]

::=

[]

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

  1. (

    ), специфицируемое в (
    ), экспонируется в () тогда и только тогда, когда эта не специфицирует <имя кореляции> ().

  2. (

    ), которое экспонируется в (), не должно совпадать ни с каким другим (
    ), становящимся видимым за пределами этого ().

  3. <Имя кореляции> (), специфицированное в (

    ), не должно совпадать ни с каким другим (), специфицированным в содержащем (), и не должно совпадать с (
    ) какого-либо (
    ), экспонирующегося в содержащем ().

  4. Областью действия () и экспонируемых (

    ) является наиболее внутренний (), () или (), содержащий (
    ), в котором содержится данный (). (
    ), которое специфицировано в (), имеет область действия, определенную этим (), если и только если это (
    ) экспонируется в этом ().

  5. Если таблица, идентифицируемая (

    ) является сгруппированным представлением, то () должен содержать в точности одну (
    ).


  6. a) Если () содержит единственное (

    ), то описание результата () такое же, как описание таблицы, идентифицируемой этим (
    ).
    b) Если () содержит более одного (
    ), то описание результата () является конкатенацией описаний таблиц, идентифицируемых этими (
    ) в порядке, в котором (
    ) появляются в ().

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

  1. Спецификация () или экспонируемого (

    ) в (
    ) определяет это () или экспонируемое (
    ) как обозначатель таблицы, идентифицируемой (
    ) этой (
    ).


  2. a) Если () содержит одно (

    ), то результатом () является таблица, идентифицируемая этим (
    ).
    b) Если () содержит более одного (
    ), то результатом () является расширенное прямое произведение таблиц, идентифицируемых этими (
    ). Расширенное прямое произведение R есть мультимножество всех строк r таких, что r является конкатенацией строк из всех идентифицированных таблиц в том порядке, в котором они идентифицировались. Мощность R есть произведение мощностей идентифицированных таблиц. Порядковая позиция столбца в R есть n + s, где n порядковая позиция порождающего столбца в именованной таблице T, и s есть сумма степеней всех таблиц, идентифицированных до T в ().

5.21 ()

Функция

Специфицирует таблицу, получаемую применением () к результату прешествующего ().

Формат

::=

WHERE

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

  1. Пусть T обозначает описание результата предшествующего (). Каждая (), прямо содержащаяся в (), должна однозначно ссылаться на столбец T или являться внешней ссылкой.
    Замечание: "Внешняя ссылка" определяется в 5.7, " ()" .

  2. (), прямо содержащееся в (), не должно включать ссылку на столбец, порождаемый функцией.

  3. Если (), прямо содержащееся в (), является (), то () должен содержаться в (), и () в () не должна являться внешней ссылкой.
    Замечание: "Внешняя ссылка" определяется в 5.7, " ()" .

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

  1. Пусть R обозначает результат ().

  2. () применяется к каждой строке R. Результатом () является таблица из тех строк R, для которых результат () есть true.

  3. Каждый () в () фактически выполняется для каждой строки R, и результаты используются при применении () к данной строке R. Если некоторый () содержит внешнюю ссылку на столбец R, то эта ссылка указывает на значение этого столбца в данной строке R.
    Замечание: "Внешняя ссылка" определяется в 5.7, " ()" .

5.22 ()

Функция

Специфицирует сгруппированную таблицу, порождаемую применением () к результату предыдущего раздела.

Формат

::=

GROUP BY

[{ , }...]

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

  1. Пусть T обозначает описание результата предшествующего () или ().

  2. Каждая () в () должна недвусмысленно ссылаться на столбец T. Столбец, указываемый в (), есть столбец группирования.

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

  1. Пусть R обозначает результат предыдущего () или ().

  2. Результатом () является разбиение R на множество групп. Это множество состоит из минимального числа групп таких, что для каждого столбца группирования каждой группы, включающей более одной строки, все значения этого столбца группирования равны.

  3. Каждая строка данной группы содержит одно и то же значение данного столбца группирования. Когда () применяется к группе, ссылка на столбец группирования является ссылкой на это значение.

5.23 ()

Функция

Специфицирует ограничение на сгруппированную таблицу, являющуюся результатом предыдущего () или (), путем исключения групп, не удовлетворяющих ().

Формат

::=

HAVING

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

  1. Пусть T обозначает описание результат предшествующего (), () или (). Каждая (), непосредственно содержащаяся в (), должна недвусмысленно указывать на столбец группирования T или являться внешней ссылкой.
    Замечание: "Внешняя ссылка" определяется в 5.7, " ()" .

  2. Каждая (), содержащаяся в () в () и указывающая на столбец T, должна ссылаться на столбец группирования T или должна быть специфицирована внутри ().

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

  1. Пусть R обозначает результат предшествующего (), () или (). Если этот раздел не есть (), то R состоит из одной группы и не обладает столбцом групирования.

  2. () прмменяется к каждой группе R. Результат () является сгруппированной таблицей, содержащей те группы из R, для которых результат () есть true.

  3. Когда () применяется к данной группе R, эта группа является аргументом или источником аргумента каждой (), прямо содержащейся в (), если только () в () не является внешней ссылкой.
    Замечание: "Внешняя ссылка" определяется в 5.7, " ()".

  4. Каждый () в () фактически вычисляется для каждой группы R и результат используется при применении () к данной группе R. Если какой-либо () содержит внешнюю ссылку на столбец R, то эта ссылка указывает на значения этого столбца в данной группе R.
    Замечание: "Внешняя ссылка" определяется в 5.7, " ()".

()

Функция

Специфицирует мультимножество значений, полученных из результата (

).

Формат

::=

(SELECT [ALL | DISTINCT]

)

::=

| *

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

  1. Применимые привилегии для каждого (

    ), содержащегося в (
    ), должны включать SELECT.
    Замечание: "Применимые ()" для (
    ) определяются в 6.10, " ()".


  2. a) Если () "*" указана в () какого-либо (), отличного от (), то степень (

    ) должна быть равна 1 и () эквивалентна (), состоящему из (), указывающей на единственный столбец (
    ).
    b) Если () "*" указана в () (), то () эквивалентна произвольному (), не включающему (
    ) и допустимому в ().

  3. Тип данных значений () есть тип данных явного или неявного ().

  4. Пусть R обозначает результат (

    ).

  5. Каждая () в () должна недвусмысленно ссылаться на столбец R.

  6. Если R - это сгруппированное представление, то () не должна содержать ().

  7. Если R - это сгруппированная таблица, то каждая () в () должна указывать на столбец группирования или быть специфицированной внутри (). Если R это не сгруппированная таблица и () включает (), то каждая () в () должна быть указана внутри ().

  8. () DISTINCT не должно специфицироваться более одного раза в (), включая любой (), содержащийся в этом ().

  9. Если () специфицируется в (), то (

    ) не должно содержать () или () и не должно идентифицировать сгруппированное представление.

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

  1. Если R не является сгруппированной таблицей и () включает (), то R является аргументом или источником аргумента каждой () в () и результат () есть значение, специфицированное ().

  2. Если R не является сгруппированной таблицей и () не включает (), то () применяется к каждой строке R, образуя мультимножество из n значений, где n - мощность R. Если не указано ключевое слово DISTINCT, то это мультимножество является результатом (). Если DISTINCT указано, то результатом () является множество значений, получаемое из этого мультимножества удалением любых избыточных дублирующих значений.

  3. Если R - сгруппированная таблица, то () применяется к каждой группе R, образуя мультимножество из n значений, где n - число групп в R. Когда () применяется к данной группе R, эта группа является аргументом или источником аргумента каждой () в (). Если не указано ключевое слово DISTINCT, то это мультимножество является результатом (). Если DISTINCT указано, то результатом () является множество значений, получаемое из этого мультимножества удалением любых избыточных дублирующих значений.

5.25 ()

Функция

Специфицирует таблицу, полученную из результата (

).

Формат

::=

(SELECT [ALL | DISTINCT]

)

::=

[{,}]

| *

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

  1. Применимые привилегии для каждого (

    ), содержащегося в (
    ), должны включать SELECT.
    Замечание: "Применимые ()" для (
    ) определяются в 6.10, " ()".

  2. Пусть R обозначает результат (

    ).

  3. Степень таблицы, специфицированной через () равна мощности ().

  4. () "*" эквивалентен последовательности (), в которой каждое () является (), указывающей на столбец R, и каждый столбец R указывается ровно один раз. Столбцы указываются в порядке возрастания номеров их исходных позиций внутри R.

  5. Каждая () в каждом () должна однозначно указывать на столбец R. () DISTINCT не должно указываться более одного раза в () за исключением любого () этой ().

  6. Если R - это сгруппированное представление, то () не должен содержать ().

  7. Если R - это сгруппированная таблица, то каждая () в каждом () должна указывать на столбец группирования или быть специфицированной внутри (). Если R - это не сгруппированная таблица и какое-либо () включает (), то каждая () в любом () должна быть указана внутри ().

  8. Каждый столбец таблицы, являющейся результатом (), имеет тот же тип данных, длину, точность и масштаб, что и (), из которого он получен.

  9. Если i-ое () в () состоит из единственной (), то i-ый столбец результата есть именованный столбец с (), соответствующим (). В противном случае i-ый столбец является неименованным.

  10. На столбец таблицы, которая является результатом (), накладывается ограничение содержать только не неопределенные значения в том и только в том случае, когда это именованный столбец с ограничением содержать только не неопределенные значения.

  11. () является изменяемой (updatable) в том и только в том случае, когда выдерживаются следующие условия:
    a) Ключевое слово DISTINCT не указано.
    b) Каждое () в () состоит из (), и ни одна () не появляется более одного раза.
    c) () (

    ) специфицирует в точности одну (
    ), и эта (
    ) указывает либо на базовую таблицу, либо на порожденную таблицу, являющуюся изменяемой (updatable).
    d) () (
    ) не содержит ().
    e) (
    ) не включает () или ().

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

  1. Если R не является сгруппированной таблицей и () включает (), то R является аргументом или источником аргумента каждой () в () и результат () есть таблица, состоящая из одной строки. I-ое значение строки есть значение, специфицированное i-ым ().

  2. Если R не является сгруппированной таблицей и () не включает (), то каждое () применяется к каждой строке R, образуя таблицу из m строк, где m - мощность R. I-ый столбец таблицы содержит значения, полученные применением i-ого (). Если не указано ключевое слово DISTINCT, то эта таблица является результатом (). Если DISTINCT указано, то результатом () является таблица, получаемая из этой таблицы удалением любых избыточных дублирующих значений.

  3. Если R - сгруппированная таблица с нулевым числом групп, то результатом () является пустая таблица.

  4. Если R - сгруппированная таблица с одной или более групп, то каждое () применяется к каждой группе R, образуя таблицу из m строк, где m - число групп в R. I-ый столбец таблицы содержит значения, полученные применением i-ого (). Когда () применяется к данной группе R, эта группа является аргументом или источником аргумента каждой () в (). Если не указано ключевое слово DISTINCT, то эта таблица является результатом (). Если DISTINCT указано, то результатом () является таблица, получаемая из этой таблицы удалением любых избыточных дублирующих строк.

  5. Строка является дубликатом другой строки в том и только в том случае, когда все пары значений с одной и той же порядковой позицией идентичны.

6. Язык определения схем

6.1 ()

Функция

Определяет ().

Формат

::=

CREATE SCHEMA

[...]

::=

AUTHORIZATION

::=

::=

|

|

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

  1. () должен быть отличным от () любой другой () в той же самой среде. Понятие среды определяется в реализации.

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

Нет.

6.2 ()

Функция

Определяет базовую таблицу.

Формат

::=

CREATE TABLE

(

[{,
}...])

::=

|

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

  1. Если (

    ) содержит (), то этот () должен быть таким же, как () содержащей схемы.

  2. (

    ) должно быть отличным от (
    ) любого другого (
    ) или () содержащей ().

  3. (

    ) должно содержать по меньшей мере одно ().

  4. Областью действия (

    ) является (
    ).

  5. Описание таблицы, определенной через (

    ) включает имя (
    ) и описание столбцов, специфицированное каждым (. Описание i-го столбца предоставляется i-ым ().

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

  1. (

    ) определяет базовую таблицу.

6.3 ()

Функция

Определяет столбец таблицы.

Формат

::=

[]

[...]

::=

NOT NULL []

|

| CHECK ()

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

  1. () должно быть отличным от () любого другого () содержащегося в (

    ).

  2. I-ый столбец таблицы описывается i-ым () в (

    ). Имя и тип данных столбца определяются () и () соответственно.

  3. Пусть C обозначает () в ().

  4. Если указано NOT NULL, то неявно вводится следующее (): CHECK (C IS NOT NULL)

  5. Если не указано NOT NULL и не указан (), то неявно вводится DEFAULT NULL.

  6. Если указана (), то неявно вводится следующее ():

  7. (C)


Замечание: () определяется в 6.6, " ()".

  1. Если указана (), то неявно вводится следующее ():

  2. FOREIGN KEY(C)


Замечание: () определяется в 6.7, " ()".

  1. Если указано CHECK, то каждая () в () должна ссылаться на столбец C, и неявно вводится следующее (

  2. CHECK ()

  3. Описание столбца, определенного через (), включает имя () и тип данных, специфицированный ().

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

Нет.

()

Функция

Специфицирует умолчание для ().

Формат

::=

DEFAULT { | USER | NULL }

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

  1. () объекта () есть () содержащего этот раздел ().


  2. a) Если указан (), то:


    • i) Если () объекта есть тип символьных строк, то () должен быть (). Длина () не должна быть больше, чем () () объекта.
      ii) Если () объекта есть тип точных чисел, то () должен быть () и должно существовать представление значения () в () объекта, в котором не теряются никакие значащие цифры.
      iii) Если () объекта есть тип приблизительных чисел, то литерал должен быть () или ().


b) Если указано USER, то () объекта должен быть типом символьных строк и () () объекта должна быть больше или равна 18.
c) Если указано NULL, то содержащее раздел умолчания () не должно специфицировать NO NULL.

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

  1. Когда строка заносится в таблицу, специфицированную содержащим раздел умолчания (

    ), столбец, определенный через (), инициализируется следующим образом:
    a) Если () не содержит () или если явно или неявно определяется (), специфицирующий NULL, то столбец инициализируется неопределенным значением.
    b) Если () содержит (), специфицирующий (), то:


    • i) Если () () есть тип точных или приблизительных чисел, то столбец инициализируется численным значением ().
      ii) Если () () есть тип данных символьных строк с длиной, равной длине (), то столбец инициализируется значением этого ().
      iii) Если () () есть тип символьных строк с длиной большей, чем длина (), то столбец инициализируется значением (), расширенным при необходимости символами пробела вправо до длины ().


c) Если () включает () со спецификацией USER, то столбец инициализируется значением, определяемым USER, расширенной символами пробела вправо до длины () ().

6.5 ()

Функция

Специфицирует ограничение целостности.

Формат

::=

|

|

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

Нет.

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

  1. (

    ) фактически проверяется после выполнения каждого ().

6.6 ()

Функция

Специфицирует ограничение уникальности для таблицы.

Формат

::=

()

::=

UNIQUE | PRIMARY KEY

::=

[{,}...]

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

  1. Пусть T обозначает таблицу, для которой определяется ограничение.

  2. Каждое () в () должно идентифицировать столбец T, и один столбец не должен указываться более одного раза.

  3. В () для каждого () в () должно быть указано NO NULL.

  4. В (

    ) должно содержаться не более одного явного или неявного (), специфицирующего PRIMARY KEY.

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

  1. Пусть термин "назначенные столбцы" обозначает столбцы, идентифицируемые () в ().

  2. Ограничение уникальности обязывает T не содержать строк, назначенные столбцы которых образуют дубликаты. Две строки являются дубликатами, если значение каждого назначенного столбца в первой строке равно значению соответствующего столбца во второй строке. Ограничение фактически проверяется после выполнения каждого ().

6.7 ()

Функция

Специфицирует ограничение на ссылки.

Формат

::=

FOREIGN KEY ()

::=

REFERENCES

::=

::=

[()]

::=

[{,}...]

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

  1. Пусть термин "ссылающаяся таблица" обозначает таблицу, для которой определяется ограничение. Пусть термин "ссылаемая таблица" обозначает таблицу, идентифицируемую (

    ) в (). Пусть термин "ссылающиеся столбцы" обозначает столбцы, идентифицируемые () в ().


  2. a) Если в () указывается () или (), то эти () или () должны быть идентичны () в () ссылочной таблицы. Пусть термин "ссылаемые столбцы" обозначает столбцы, идентифицируемые этими () или ().
    b) Если в () не указывается () или (), то (

    ) для ссылаемой таблицы должно содержать (), специфицирующее PRIMARY KEY. Пусть термин "ссылаемые столбцы" обозначает столбцы, идентифицируемые () в этом ().

  3. Применимые () для (

    ) должны включать REFERENCES для каждого ссылаемого столбца.
    Замечание: "Применимые ()" для (
    ) определяются в 6.10, " ()".

  4. Ссылаемая таблица должна являться базовой таблицей.

  5. Каждый ссылающийся столбец должен идентифицировать столбец ссылающейся таблицы, и одно и то же имя столбца не должно указываться более одного раза. Каждый ссылаемый столбец должен идентифицировать столбец ссылаемой таблицы, и одно и то же имя столбца не должно указываться более одного раза.

  6. должны содержать то же число имен столбцов, что и (). I-ый столбец, идентифицируемый в (), соответствует i-ому столбцу, идентифицируемому в (). Тип данных каждого ссылающегося столбца должен быть таким же, как и тип данных соответствующего ссылаемого столбца.

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

  1. Ссылающаяся таблица и ссылаемая таблица удовлетворяют () в том и только в том случае, когда для каждой строки ссылающейся таблицы либо:
    a) Все ссылающиеся столбцы в строке содержат не неопределенные значения и существует строка в ссылаемой таблице такая, что для каждого ссылающегося столбца значение ссылающегося столбца равно значению соответствующего ссылаемого столбца, либо
    b) Какой-либо ссылающийся столбец в строке содержит неопределенное значение.

6.8 ()

Функция

Специфицирует условие для таблицы.

Формат

::=

CHECK ()

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

  1. () не должно содержать (), () или ().

  2. Каждая () в () должна ссылаться на столбец, определенный в содержащем (

    ).

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

  1. База данных не удовлетворяет () в том и только в том случае, когда таблица, определенная через содержащее (

    ), содержит строку, для которой () есть false.

6.9 ()

Функция

Определяет представляемую таблицу.

Формат

::=

CREATE VIEW

[()]

AS

[WITH CHECK OPTION]

::=

[{,}...]

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

  1. Если (

    ) содержит (), то этот () должен быть таким же, как и () содержащей ().

  2. (

    ) должно быть отличным от (
    ) любого другого () или (
    ) в содержащей ().

  3. Если () является изменяемой (updatable), то представляемая таблица является изменяемой таблицей. В противном случае это только читаемая таблица.

  4. Если какие-либо два столбца в таблице, определяемой (), имеют одно и то же () или если какой-либо столбец этой таблицы является неименованным столбцом, то должен быть указан ().

  5. Одно () не должно указываться более одного раза в ().

  6. Число () в () должно быть таким же, что и степень таблицы, определяемой ().

  7. Описание таблицы, определенной через (), включает имя (

    ) и описания столбцов таблицы, специфицированной через (). Если указывается (), то имя i-ого столбца есть i-ое () в этом ().

  8. Если () содержит () или (), не содержащиеся в (), то представляемая таблица, определенная через данное (), является сгруппированной таблицей.

  9. Если указано WITH CHECK OPTION, то представляемая таблица должна быть изменяемой (updatable).

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

  1. () определяет представляемую таблицу. Представляемая таблица V - это таблица, которая явилась бы результатом выполнения (). Является ли представляемая таблица материализованной определяется в реализации.

  2. Если V - изменяемая (updatable) таблица, то пусть T обозначает таблицу, идентифицируемую (

    ), которое указано в первом () в (). Для каждой строки в V существует соответствующая строка в T, из которой получается эта строка V. Для каждого столбца в V существует соответствующий столбец в T, из которого получается этот столбец V. Занесение строки в V является занесением соответствующей строки в T. Удаление строки из V является удалением соответствующей строки из T. Модификация столбца строки в V является модификацией соответствующей строки в T.


  3. a) Если указано WITH CHECK OPTION, и () содержит (), то применение к представлению (), () или () не должно приводить к созданию строки, для которой результат этого () есть false.
    b) Если WITH CHECK OPTION не указано, то () не должно ограничивать значения данных, которые могут быть занесены в изменяемую (updatable) представляемую таблицу.
    Замечание: См. Общее правило 2 в 8.7, " ()", Общее правило 5 в 8.11, " ()" и Общее правило 4 в 8.12, " ()".

6.10 ()

Функция

Определяет привилегии.

Формат

::=

GRANT ON

TO [{,}...]

[WITH GRANT OPTION]

::=

ALL PRIVILEGES

| [{,}...]

::=

SELECT | INSERT | DELETE

| UPDATE [()]

| REFERENCES [(]

::=

[{,}...]

::=

PUBLIC |

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

  1. Пусть T обозначает таблицу, идентифицируемую (

    ). () определяют одну или более привилегий на T.

  2. UPDATE () специфицирует привилегию UPDATE для каждого столбца T, указанного в (). Каждое () в () должно идентифицировать столбец T. Если () опущен, то UPDATE специфицирует привилегию UPDATE для всех столбцов T.

  3. REFERENCES () специфицирует привилегию REFERENCES для каждого столбца T, указанного в (). Каждое () в () должно идентифицировать столбец T. Если () опущен, то REFERENCES специфицирует привилегию REFERENCES для всех столбцов T.

  4. Применимые () для ссылки на (

    ) определяются следующим образом:
    a)


    • i) Если вхождение (

      ) содержится в (), то пусть применимым () будет (), указанный как () этой ().
      ii) Если вхождение (
      ) содержится в (), то пусть применимым () будет (), указанный как () этого ().


b)


    • i) Если применимый () является таким же, как (), явно или неявно специфицированный в (

      ), то:

      1. Если T - базовая таблица, то применимыми () являются INSERT, SELECT, UPDATE, DELETE и REFERENCES, и эти () могут передаваться.

      2. Если T - представляемая таблица и не является изменяемой (updatable), то применимой () является SELECT, и эта привилегия может передаваться тогда и только тогда, когда могут передаваться применимые привилегии SELECT ко всем , содержащимся в ().

      3. Если T - изменяемая (updatable) представляемая таблица, то применимыми на T () являются все () (кроме REFERENCES), применимые на (

        ) T2, указанном в () (). Привилегия является передаваемой на T в том и только в том случае, когда она является передаваемой на T2.


ii) Если применимый () не является таким же, как (), явно или неявно специфицированный в (

), то применимые () включают все (), для которых (
) такое же, как данное (
), и для которых () либо включают применимый (), либо включают PUBLIC, и применимые () содержат все привилегии, специфицированные в применимых (). Привилегия является передаваемой в том и только в том случае, когда она указана в числе () некоторого применимого (), в котором указано WITH GRANT OPTION и указан применимый ().

  1. ALL эквивалентно списку (), включающему все применимые () на данном (

    ).

  2. Применимые () для (

    ) из () должны включать (), указанные в ().

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5247
Авторов
на СтудИзбе
422
Средний доход
с одного платного файла
Обучение Подробнее