Реферат: Общие элементы SQL - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

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

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 56 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

Общие элементы 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 <Литерал > () Функция Определяет не неопределенное значение Формат ::= | ::= '...' ::= | ::= '' ::= | ::= [+|-] [.] | . | . ::= E ::= ::= ::= [+|-] ::= ... Синтаксические правила 1. <Символ-не-кавычки > () - это любой <символ > (), отличный от символа одиночной к авычки ('). 2. Тип данных <литерала символьной строки > () представляет строку символов . Длина <литерала символьной строки > () есть число <представлений символов > (), которые он содержит . Каж дое <представ ление кавычки > ( ) в <литерале с имвольной строки > () представляет символ один очной кавычки как в значении , так и в длине <литерала символьной строки > (). 3. Для <литерала точного числа > () без деся тичной точки (.) нея вно предполагается наличие десятичной точки п осле последней <цифры > (). 4. Тип данных <литерала точного числа > () представляет точные числа . Точность <литерала точного числа > () есть число <цифр > (), которые он содержит . Масштаб <литерала точного числа > () есть чи сло <цифр > () справа от десятичной точки . 5. Тип данных <литерала приблизительного числа > () представляет п риблизительные числа . Точность <литерала п риблизительного числа > () есть точность его <мантиссы > (). Общие правила 1. Значение <литерала символьной стро ки > () - это последовательность содер жащих ся в нем <символов > (). 2. Численное значение <литер ала точного числа > () получается путем обы чной математической интерпретации знаковой позиц ионной десятичной записи . 3. Численное значение <литер ала приблизительног о числа > () есть результат умножения точного численного значения , представленного <мантиссой > (), на число , полу ченное путем возведения числа 10 в степень , представляемую <порядком > (). 5.3 <Лексема > () Функция Определяет лексические единицы . Формат ::= | ::= | | ::= [ [] ...] ::= _ ::= | ::= ALL | AND | ANY | AS | ASC | AUTHORIZATIO N | 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 | SEC TION | 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. <Имя таблицы > (
) в < операторе SQL> () должно идентифицировать таблицу , опреде ленную в <схеме > (). 6. <Идентификатор полномочий > () представляет идентификатор полномочий . 7. <Идентификатор > () объявля ется как <имя кореляции > () и ассоциируется с таблицей для индивидуа льной област и действия . Область действия <имени кореляции > () - это либо <оператор выборки > (
) или через <определе ние представления > (). 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. <Спецификация параметра > () должна соде ржаться в <модуле > (). <Спецификация переменной > () должна со держ аться во <встроенном операторе SQL> (). 6. Тип данных USER - это симв ольная строка длины , определенной в реализаци и . Общие правила 1. Если <спецификация параметра > () содержит <параметр-индикатор > () и значение параметра-индикатора отрицательно , то значение , специфицируемое <спецификацией параметра > () - н е определ енное . В противном случае зна чение , специфицируемое <спецификацией параметра >() - это значение параметра , идентифицируемого <именем параметра > (). 2. Если <спецификация переме нной >() содержи т <переменную-индикатор > () и значение переменной-индикатора отрицательно , то значение , специфицируемое <спецификацией п еременной > () - не определенное . В противном случае значение , специфицируемое <спецификацие й переменной > () - это значение пе ременной , идентифицируемой <именем встроенной пере менной > (). 3. Значение , специфицируемое <литералом > () - это значение , представляемое этим <литералом > () . 4. Значение , специфицируемое USER, равно <идентификатору полномочий > (), указанно му как <идентификатор полномочий модуля > () <модуля > (), содержащего <оператор SQL> (), вы полнение которого вызвало вычисления <спе цификации значения > () USER. <Спецификация с толбца > () Функция Указание именованного столбца . Формат ::= [.] ::=
| Синтаксические правила 1. <Спецификация столбца > указывает именованный столбец . Смысл указания столбца з ависит от контекста . 2. Пусть C <имя столбца > () в <сп ецификации столбца > (). 3. Тогда : a) Если <спецификац ия столбца > () содержит <квалификатор >(), то <спецификация столбца > должна содержаться в области действия одного или более <иментаблиц > (
) или <имен кореляции >(), равных < квалификатору >(). Если таких <имен таблиц > () или <имен кореляции > ()больше одного , то используется имя с наиболее локальной обла стью действия . Таблица , ассоциир о ванна яс указанным <именем таблицы > (
) или <именем кореляции > (), должнавключать столбец с <имене м столбца > () C. b) Если <спецификация столбца > () не включает <квалификатор >(), то о на должна содержаться в областидействия одного или более <имен таблиц > () или <имен кореляции > ().Пусть фраза "возможные квалификаторы " обозначает те <имена таблиц > (
) и <имена корреляций >(), для к о торых ассоциированныетаблицы включают столбе ц , <имя столбца > () которого есть C. Должен с уществовать в точности один возможный квалифи катор с наиболее локальной областью действия , и это <имя таблицы >(
) или <имя коррел яции > () неявно используется . Замечание : "Область действия " <имени таблицы > (table name> или <имени корел яции > () специфицируется в 5.20 "<Раздел from> ()", 6.2 , "<Определение таблицы > (
)" , 8.5 , "<Оператор удаления : поисковый > ()" , 8.11 , "<Оператор модификации : позиционн ый > ()" и 8.12 , "<Оператор моди фикации : по исковый >()". 4. Если <спецификация столбц а > () содержится в <выражении над таблицами > (
) T и область действия явно или неявно указанного <квалификатора > () <специфика ции столбца > () есть некоторый <оператор SQL> () и ли <выражение над таблицами > (
), содержащее < выражение над таблицами > (
) 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. Если <спецификация функци и над множеством > () содержит <спецификацию столбца > (), являющуюся внешней ссылкой , то <спецификации функции над множеством > () должна содержаться в <подзапросе > () <стат ьи having> (). Замечание : "Внешняя ссылка " определяется в 5.7, "<Специф икация столбца > (). 6. Пусть T тип данных зна чений , являющихс я результатами вычисления <спецификации столбца > () или <выражения , выраба тывающего значение > (). 7. Если указывается COUNT, то тип данных результата <спецификации функции над множеством > () - это тип точных чисел с определенной в реализации точнос тью и масштабом 0. 8. Если указывается MAX или MIN, то тип данных результата есть T. 9. Если указывается SUM или AVG, то : a) тип T не должен быть типом символ ьных строк . b) если указывается S UM и 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" или "unk nown". Формат ::= | | | | | | Синтаксические правила Нет . Общие правила 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. "x <= y" есть true тогд а и только тогда , когда x не больше , чем y. "x >= y" есть true тогда и только тогда , когда x не меньше , чем y. 4. Числа сравниваются в соответствии с их алгебраическими значениями . 5. Сравнение двух си мвольных строк определяется через сравнен ие <символов > () с одинаковыми порядковыми поз ициями . Если строки не имеют одинаковую дл ину , то сравнение производится с рабочей к опией более короткой строки , дополненной спра ва пробелами таким о б разом , чтоб ы она имела длину , равную длине другой строки . 6. Две строки равны , есл и все <символы > () с одинаковыми порядковыми позициями совпадают . Если две строки не равны , то их отношение определяется на основе сравнения первой пары неравных <символов > () с левого конца строк . Это сравнение производится в соответствии с определенной в реализации последовательностью сопоставления . 7. Хотя "x = y" есть unknown, если x и y являются неопределенными значениями , в конте кстах GROUP BY, OR DER BY и DISTINCT неопределенное значение ид ентично или является дубликатом другого неопр еделенного значения . <Предикат between> () Функция Специфицирует сравнение с интервалом . Формат ::= [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 <Предикат in> () Функция Специфицирует сравнение с квантором . Формат ::= [NOT] IN | () ::= , ... Синтаксические правила 1. Типы данных первого <выражения , вырабатывающего значение > () и <подзапроса > () или всех <выражений , вырабатывающих значен ие > () в <списке значений in> () должны быть сравнимыми . Общие правила 1. Пусть x обозначает результат <выраж ения , вырабатывающего значение > (). Пусть S обозна чает результат <подзапроса > () как в <пре дикате с квантором > () или значения , опреде ленные через <список значений in> (), рассматриваем ые как значения строк единственного столбца таблицы степени один . 2. Результат "x IN S" тот же с амый , что и результат "x = ANY S". Результат "x NOT IN S" т от же самый , что и результат "NOT (x IN S)". 5.14 <Предикат like> () Функция Специфицирует сравнение по совпадению с образцом . Формат ::= [NOT ] LIKE [ESCAPE ] ::= ::= Синтаксические правила 1. <Спецификация столбца > () должн а указывать на столбец символьных стр ок . 2. Тип данных <образца > () должен быть типом символьных строк . 3. Тип данных <символа escape> () должен быть типом символьных строк дл ины 1. Общие правила 1. Пусть x обозначает значени е , указываемое <спецификацией столбца > (), и пус ть y обозначает результат <спецификации значения > () <образца > (). 2. Тогда : a) Если указывается <символ escape> (), то : o i) Пусть z о бозначает результат <спецификации значени я > () <символа escape> (). ii) Должно существовать ра збиение строки y на подстроки такое , что ка ждая подстрока имеет длину 1 или 2, никакая п одстрока длины 1 не содержит симв о ла escape z, и каждая подстрока длины 2 начинается с символа escape z, за которым следует либо си мвол escape z, либо символ подчеркивания , либо символ знака процента . В этом разбиении y каждая подстрока длины 2 представляет одно вхождение второго символа э той подстроки . Каждая подстрока длины 1, содержащая символ по дчеркивания , представляет спецификатор произвольного символа . Каждая подстрока длины 1, содержащая знак процента , представляет спецификатор про извольной строки . Каждая подстрока длины 1, не соде р жащая ни символа подчеркива ния , ни символа знака процента , представляет символ , который она содержит . b) Если <символ escape> () не указан , то каждый символ подче ркивания в y представляет спецификатор произвольно го символа , каждый симво л знака процен та в y представляет спецификатор произвольной строки , и каждый символ в y, который не является ни символом подчеркивания , ни символ ом знака процента , представляет сам этот с имвол . 3. Строка y является последовательностью минимального числа с пецификаторов подстр ок таких , что каждый <символ > () y является частью в точности одного спецификатора подстр оки . Спецификатор подстроки - это спецификатор произвольного символа , спецификатор произвольной подстроки или любая последовательность < символов > (), не являющаяся спецификатором произвольного символа или спецификатором произ вольной строки . 4. Результатом "x LIKE y" является unknown, если x или y представляют неопределенное значение . Если x и y представляют не неопределенные з н ачения , то значением "x LIKE y" является либо true, либо false. 5. Результатом "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. 6. Результат "x NOT LIKE y" такой же , как результат "NOT (x LIKE y)". 5.15 <Предикат null> () Функция Специфицирует проверку значения на неопре деленность . Формат ::= 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> () Функция Специфицирует проверку множества на пустоту . Формат ::= 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 і unkno wnі 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. Если таблица , идентифицируемая в <разделе from> (), является сгруппированным представлен ием , то <выражение , вырабатывающее таблицу > (
) не должно содержать <раздела where> (), < раздела group by> () или <раздела having> (). Общие правила 1. Если все необязательные разделы опущены , то результирующая таблица является результатом <ра здела from> (). В противном случае каждый указанный раздел применяется к результату раздела , указанного перед ним , и результирующая таблица является результатом применения последнего указанного раздела . Резул ьтатом <выражения , вырабатывающее т аблиц у > (
) является порожденная таблица , в которо й i-ый столбец наследует описание i-ого стол бца таблицы , специфицированной через <раздел from> (). 5.20 <Раздел from> () Функция Специфицирует таблицу , порожден ную из одной или более именованных таблиц . Формат ::= FROM
[ ,
...]
::=
[] Синтаксические правила 1. <Имя таблицы > (
), специфицируемое в <ссылке на таблицу > (
), экспонируется в <разделе from> () тогда и только тогда , когда эта <ссылка на таблицу > не специфицирует <имя кореляции > (). 2. <Имя табл ицы > (
), которое экспонируется в <разделе from> (), не должно совпадать ни с каким другим <име нем таблицы > (
), становящимся видимым за пред елами этого <раздела from> (). 3. <Имя кореляции > (), специфицированное в <ссылке на таблицу > (
), не должно совпадать ни с каким другим <именем кореляции > (), специфицированным в содержащем <разделе from> (), и не должно со впадать с <идентификатором табли ц ы > (
) какого-либо <имени таблицы > (
), экспонирующего ся в содержащем <разделе from> (). 4. Областью действия <имен кореляции > () и экспонируемых <имен таблиц > (
) является наиболее вну тренний <подзапрос > (), <спецификация запроса > () или <оператор выборки > (
), в котором содержится данный <раздел from> (). < И мя таблицы > (
), которое специфицировано в <разделе from> (), имеет област ь действия , определенную этим <разделом from> (), если и только если это <имя таблицы > (
) экспонируется в этом <разделе from> (). 5. Если таблица , идентифицир уемая <именем таблицы > (
) является сгруппированны м представлением , то <раздел from> () должен содер жать в точности одну <ссылку на таблицу > (
). 6. a) Если <раздел from> () содержит единственное <имя таблицы > (
), то описание результата <раздела from> () такое же , как описание таблицы , идентифицируемой э тим <именем таблицы > (
). b) Если <раздел from> () с одержит бо л ее одного <имени таблиц ы > (
), то описание результата <раздела from> () яв ляется конкатенацией описаний таблиц , идентифицир уемых этими <именами таблиц > (
) в порядке , в котором <имена таблиц > (
) появляются в < разделе from> (). Общие правила 1. Спецификация <имени кореляции > () или экспонируемого <имени таблицы > (
) в <ссылке на таблицу > (
) определяет это <имя кореляции > () или экспон ируемое <имя таблицы > (
) как обозначатель таблицы , идентифицир уемой <именем таблицы > (
) этой <ссылки на таблицу > (
). 2. a) Если <раздел from> () со держит одно <имя таблицы > (
), то результа том <раздела from> () является таблица , иденти фицируемая этим <именем таблицы > (
). b) Если <ра здел from> () содержит более одного <имени таблиц ы > (
), то результатом <раздела from> () является расширенное прямое произведение табл иц , идентифицируемых этими <именами таблиц > (
). Расширенное прямое произведение R есть мульти множество всех строк r таких , что r является конкатенацией строк из всех идентифицированных таблиц в том порядке , в котором они идентифицировались . Мощность R есть произв едение мощностей идентифицированных таблиц . Поряд ковая позиция столбца в R есть n + s, где n поряд ковая позиция порождающего столбца в именован ной таблице T, и s есть сумма степеней всех таблиц , идент и фицированных до T в <разделе from> (). 5.21 <Раздел where> () Функция Специфицирует таблицу , получаемую применением <условия поиска > () к результату прешествую щего <раздела from> (). Формат ::= WHERE Синтаксические правила 1. Пусть T обозначает описание результ ата предшествующего <раздела from> (). Каждая <специфи кация столбца > (), прямо содержащаяс я в <условии поиска > (), должна однозначно ссыла ться на столбец T или являться внешней ссы лкой . Замечание : "Внешняя ссылка " определяется в 5.7 , "<спецификация столбца > ()" . 2. <Выражение , вырабаты вающее значение > (), прямо содержащееся в <условии поиска > (), не должно включать ссылку на столбец , порождаемый функцией . 3. Если <выражение , вырабатыв ающее значение > (), прямо содержащееся в <усл овии поиска > (), является <спецификацией фу нкции над множеством > (), то <раздел where> () должен содержаться в <разделе having> (), и < спецификация столбца > () в < специфика ции функции над множеством > () не должна являться внешней ссылкой . Замечание : "Внешняя ссылка " определяется в 5.7 , "<спецификация столбца > ()" . Общие правила 1. Пусть R обознач ает результат <раздела from> (). 2. <Условие поиска > () п рименяется к каждой строке R. Результатом <разде ла where> () является таблица из тех строк R, д ля которых результат <условия поиска > () есть true. 3. Каждый <подзапрос > () в <условии поиска > () фактически выполняется дл я каждой строки R, и результаты используются при применении <условия поиска > () к данн ой строке R. Если некоторый <подзапрос > () содержит внешнюю ссылку на столбец R, то эта ссылка указывает на значение этого столбца в данной строке R. Замечание : "Внешняя ссылка " опре деляется в 5.7 , "<спецификация столбца > ()" . 5.22 <Раздел gr oup by> () Функция Специфицирует сгруппированную таблицу , порожд аемую применением <раздела group by> () к результату предыдущего раздела . Формат ::= GROUP BY [ , ...] Синтаксические правила 1. Пусть T обозначает описание результ ата предшествующего <раздела from> () или <раздела where> (). 2. Каждая <спецификация стол бца > () в <разделе group by> () должна недвусмы сленно ссылаться на столбец T. Столбец , указывае мый в <разделе group by> (), есть столбец группирова ния . Общие правила 1. Пусть R обозначает результат пре дыдущего <раздела from> () или <раздела where> (). 2. Результатом <раздела group by> () является разбиение R на множество групп . Это множество состоит из минимального числ а групп таких , что для каждого столбца г руппирования каждой группы , включающей более одной строки , все значения этого столбца группирования равны . 3. Каждая строка данной группы содержит одно и то же значение данного столбца группирования . Когда <условие поиска > () применяется к группе , ссылка на столбец группирования является ссылкой на это значение . 5.23 <Раздел having> () Функция Специфицирует ограничение на сгруппированную таблицу , являющуюся результатом предыдущего < раздела group by> () и ли <раздела from> (), путем и сключения групп , не удовлетворяющих <условию п оиска > (). Формат ::= HAVING Синтаксические правила 1. Пусть T обозначает описание результ ат предшествующего <раздела from> (), <раздела where> () или <раздела group by> (). Каждая <спецификация ст олбца > (), непосредственно содержащаяся в <услов ии поиска > (), долж н а недвусмысленно указывать на столбец группирования T или являться внешней ссылкой . Заме чание : "Внешняя ссылка " определя ется в 5.7 , "<спецификация столбца > ()" . 2. Каждая <спецификация стол бца > (), содержащаяся в <подзапросе > () в <условии поиска > () и указывающая на ст олбец T, должна ссылаться на столбец группирова ния T или должна быть специфицирована внутри <спецификации функции над множество м > (). Общие правила 1. Пусть R обозначает результат предше ствующего <раздела from> (), <раздела where> () или <раздел а group by> (). Если этот раздел не есть <раздел group by> (), то R состоит из одной группы и не обладает столбцом групирования . 2. <Условие поиска > () п рмменяется к каждой группе R. Результат <раздела having> () является сгруппированной таблицей , содержа щей те группы и з R, для которых рез ультат <условия поиска > () есть true. 3. Когда <условие поиска > () применяется к данной группе R, эта груп па является аргументом или источником аргумен та каждой <спецификации функции над множество м > (), прямо содержащейся в <условии поиска > (), если только <спецификация столбца > () в <спецификации функции над множеством > () не является внешней ссылкой . Заме чание : "Вн ешняя ссылка " определяется в 5.7 , "<спецификация столбца > ()". 4. Каждый <подзапрос > () в <условии поиска > () фактически вычисляется дл я каждой группы R и результат используется при применении <условия поиска > () к данной группе R. Если какой-либо <подзапрос > () содержит внешнюю ссылку на столбец R, то эта ссылка указывает на значения этого столбца в данной группе R. Замечание : "Внешняя ссылка " опре де ляется в 5.7, "<спецификация столбца > ()". <Подзапрос > () Функция Специфицирует мультимножество значений , получ енных из результата <выражения , вырабатывающего таблицу > (
). Формат ::= (SELECT [ALL | DISTINCT]
) ::= | * Синтаксические правила 1. Применимые привилегии для каждого <имени табл ицы > (
), содержащегося в <в ыражении , вырабатывающем таблицу > (
), должны вкл ючать SELECT. Замечание : "Применимые <привилегии > ()" для <имени т аблицы > (
) определяются в 6.10 , "<опред еление привилегий > ()". 2. a) Если <спецификация р езультата > () "*" указана в <подзапросе > () какого- либо <предиката > (), отличного от <предиката exists> (), то степень < выражения , вырабатываающего таблицу > (
) должна быть равна 1 и <специф икация результата > () эквивалентна <выражению , вырабатывающему значение > (), состоящему из <спе цификации столбца > (), указывающей на единственный столбец <выражения , вырабатывающег о таблицу > (
). b) Если <спецификация результата > () "*" указана в <подзапросе > () <предиката exists> (), то <спец и фикация результата > () эквивалентна произвольному <выражению , вырабаты вающему значение > (), не включающему <спецификац ию функции над множеством > (
) и допустимому в <подзапросе > (). 3. Тип данных значений <подзапроса > () есть тип данных явного ил и неявного <выражения , вырабатывающего значение > (). 4. Пусть R обозначает результ ат <выражения , вырабатывающего таблицу > (
). 5. Каждая <спецификация столбца > () в <выражении , вырабатывающем значение > () должна недвусмысленно ссылаться на столбец R. 6. Если R - это сгруппированно е представление , то <спецификация результата > () не должна соде ржать <спецификацию ф ункции над множеством > (). 7. Если R - это сгруппированна я таблица , то каждая <спецификация столбца > () в <выражении , вырабатывающем значение > () должна указывать на столбец группирования или быть специфицированной внутри <спецификации функции над множеством > (). Если R это не сгруппированная таблица и <выражение , выр абатывающее значение > () включает <спецификацию функции н ад множеством > (), то к аждая <спецификация столбца > () в <выражении , вырабатывающем значение > () должна быть указ ана внутри <спецификации функции над множеств ом > (). 8. <Ключевое слово > () DISTINCT н е должно специфицироваться более одного раза в <подзапросе > (), включая любой <подзапрос > (), содержащийся в этом <подзапросе > (). 9. Если <подзапрос > () специ фициру ется в <предикате сравнения > (), т о <выражение , вырабатывающее таблицу > (
) не д олжно содержать <раздел group by> () или <раздел having> () и не должно идентифицировать сгруппированн ое представление . Общие правила 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]
)
), содержащегося в <выражении , вырабатывающем таблицу > (
), должны включать SELECT. Замечание : "Применимые <пр ивилегии > ()" для <имени таб лицы > (
) определяются в 6.10 , "<определение привилегий > ()". 2. Пусть R обозначает результ ат <выражения , вырабатывающего таблицу > (
). 3. Степень таблицы , специфиц ированной через <спецификацию запроса > () равна мощности <списка выборки > () "*" э квивалентен последовательности <выражений , вырабатываю щих значение > (), в которой каждое <в ыражение , вырабатывающее значение > () является < спецификацией столбца > (), указывающей на столб ец R, и каждый столбец R указывается ровно од ин раз . Столбцы указываются в порядке возр а с тания номеров их исходных позиц ий внутри R. 5. Каждая <спецификация стол бца > () в каждом <выражении , вырабатывающем значение > () должна однозначно указывать на столбец R. <Ключевое слово > () DISTINCT не до лжн о указываться более одного раза в <специфи кации запроса > () за исключением любого <по дзапроса > () этой <спецификации запроса > (). 6. Если R - это сгруппированно е представление , то <список выборки > () не должен содержать <спецификацию функции над множеством > (). 7. Если R - это сгруппированна я таблица , то каждая <спецификация столбца > () в каждом <выражении , вырабатывающем значени е > () должна указывать на столбец г руппирования или быть специфицированной внутри <спецификации функции над множеством > (). Е сли R - это не сгруппированная таблица и как ое-либо <выражение , вырабатывающее значение > () включает <спецификацию функции над множеством > (), то каждая <спецификация столбц а > () в любом <выражении , вырабатывающем зна чение > () должна быть указана внутри <специф ика ц ии функции над множеством > (). 8. Каждый столбец таблицы , являющейся результатом <спецификации запроса > (), имеет тот же тип данных , длину , точн ость и масштаб , что и <выражение , вырабатыв ающее значение > (), из которого он п олучен . 9. Если i-ое <выражение , в ырабатывающее значение > () в <списке выборки > () сос т оит из <спецификации столбца > (), и ни одна <спецификация столбца > () не появля ется более одного раза . c) <Раздел from> () <выраже ния , выраба тывающего таблицу > (
) специфицирует в точности одну <ссылку на таб лицу > (
), и эта <ссылка на таблицу > (
) у казывает либо на базовую таблицу , либо на порожденную таблицу , являющуюся изменяемой (updatable). d) <Раздел where> () <выражения , вырабат ы вающ его таблицу > (
) не содержит <подзапроса > (). e) <Выражение , вырабатывающее таблицу > (
) не вкл ючает <раздела group by> () или <раздела having> (). Общие правила 1. Если R н е является сгруппир ованной таблицей и <список выборки > () и результат <спецификации запроса > () есть таблица , состоящая из одной строки . I-о е значение строки есть значение , специфициров анное i-ым <выражением , вырабатывающим значение > (). 2. Если R не является сгр уппированной таблицей и <список выборки > (
| | Синтаксические правила 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, "<определение ограничения уникальности > ()". 8. Если указана <спецификация ссылок > (), то неявно вводится следующее <определ ение ограничения ссылок > (): 9. FOREIGN KEY(C ) Замеча ние : <Спецификация ссылок > () определяется в 6.7, "<определение ограничения ссылок > ()". 10. Если указано CHECK, то каждая <спец ификация столбца > () в <условии поиска > () должна ссылаться на столбец C, и неяв но вводится следующее <определение проверочного ограничения > () 12. Описание столбца , определенно г о через <определение столбца > (), включает и мя <имя столбца > () и тип данных , специфиц ированный <типом данных > (). Общие правила Нет . <Раздел умолчан ия > () Функция Специфицирует умолчание для <определения столбца > (). Формат ::= DEFAULT | USER | NULL Синтаксические правила 1. <Тип данных > () объекта <раздела умолчания > () есть <тип данных > () с одержащего этот раздел <определения столбца > (). 2. a) Если указан <литерал > (), то : o i) Если < тип данных > () объекта есть тип символьных строк , то <литерал > () должен быть <литералом символьн ой строки > (). Длина <литерала символьной строки > () не должна быть больше , чем <длина > () <типа данных > () объекта . ii) Если <тип данных > () объекта есть тип точных чисел, то <литерал > () долже н быть <литералом точного числа > () и д олжно существовать представление значения <литера ла точного числа > () в <типе данных > () объекта , в котором не теряются никакие з н ачащие цифры . iii) Если <тип дан ных > () объекта есть тип приблизительных чисе л , то литерал должен быть <литералом прибл изительного числа > () или <литералом точного числа > (). b) Если указано USER, то <тип данных > () объекта должен быть типом символьных строк и <длина > () <т ипа данных > () объекта должна быть больше или равна 18. c) Если указано NULL, то содержащее раздел умолчания <определение столбца > () не должно специфицировать NO NULL. Общие правила 1. Когда строка заносится в табл ицу , специфицированную содержащим раздел умолчани я <определением таблицы > (
), столбец , определенны й через <определение столбца > (), инициа лизируется следующим образом : a) Если <определение столбца > () не содержит <раздела умолчания > () или если явно или неявно определяет ся <раздел умолчания > (), специфицирующий NULL, то столб е ц инициализируется неопределенны м значением . b) Если <определение столбца > () содержит <раздел умолчания > (), специфицирующий <литерал > (), то : o i) Если < тип данных > () <определения столбца > () есть тип точных или приблизительных чисел , то столбец инициализируется численным значение м <литерала > (). ii) Если <тип данных > () <определ ения столбца > () есть тип данных символьных строк с длиной , р авной длине <литерала > (), то столбец инициализируется значе нием этого <литерала > (). iii) Если <тип данных > () <определения столбца > () есть тип символь ных строк с длиной большей , чем длина < литерала > (
  • ), то столбец инициализируе тся значением <литерала > (), расширенным при не обходимости символами пробела вправо до длины <типа данных > (). c) Если <определе ние столбца > () включает <раздел умолчания > () со спецификацией USER, то столбец инициал изируется значением , определяемым USER, расширенной си мволами пробела вправо до длины <типа данн ых > () <определения столбца > (). 6.5 <Определение о граничения на таблицу > () Функция Специфицирует ограничение целостности . Формат
  • ::= | | Синтаксические правила Нет . Общие правила 1. <Определение ограничения на табл ицу > (
    ) фактически проверяется после выполне ния каждого <оператора SQL> (). 6.6 <Определение о граничения уникальн ости > () Функция Специфицирует ограничение уникальности для таблицы . Формат ::= () ::= UNIQUE | PRIMARY KEY ::= [ , ...] Синтаксические правила 1. Пусть T обозначает таблицу , для которой определяется ограничение . 2. Каждое <имя столбца > () в <сп иске столбцов уникальности > () должно идентифицировать столбец T, и один столбец не должен указываться более одного раза . 3. В <определении столбца > () для каждого <имени столбца > () в <спис ке столбцов у никальности > () должно быт ь указано NO NULL. 4. В <определении таблицы > (
    ) должно содержаться не более одного яв ного или неявного <определения ограничения ун икальности > (), специфицирующе го PRIMARY KEY. Общие правила 1. Пусть термин "назначенные столбцы " обозначает столбцы , идентифицируемые <именами столбцов > () в <списке столбцов уникальности > (). 2. Ограничение уникальности обязывает T не содержать стр ок , назначен ные столбцы которых образуют дубликаты . Две строки являются дубликатами , если значение каждого назначенного столбца в первой строке равно значению соответствующего столбца во второй строке . Ограничение фактически провер яется после выполнения к а ждого <оп ератора SQL> (). 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. Если <спецификация запрос а > () содержит <раздел group by> () или <разд ел having> (), не содержащиеся в <подзапросе > (), то представляемая таблица , определенная через д анное <определение представления > (), является сг руппированной таблицей . 9. Если указа но WITH CHECK OPTION, то представляемая таблица должна быть из меняемой (updatable). Общие правила 1. <Определение представления > () опр еделяет представляемую таблицу . Представляемая та блица V - это таблица , которая явилась бы рез ультатом выполнения <спецификации запроса > (). Является ли представляемая таблица материа лизованной определяется в реализации . 2. Если V - изменяемая (updatable) табл ица , то пусть T обозначает таблицу , идентифициру емую <именем таблицы > (), которое указано в первом <разделе from> () в <спецификации за проса > (). Для каждой строки в V существует соответствующая строка в T, из которой пол учается эта строка V. Для каждого столбца в V существует соответ с твующий столбец в T, из которого получается этот столбец V. Занесение строки в V является занесением со ответствующей строки в T. Удаление строки из V является удалением соответствующей строки из T. Модификация столбца строки в V является м одификацией соот в етствующей строки в T. 3. a) Если указано WITH CHECK OPTION, и <спецификация запроса > () содержит <раздел where> (), то применение к представлению <оператора вставки > (), <оператора модификации : позици онного > () или <оператора модификации : поиско вого > () не должно приводить к созданию строки , для которой результат этого <разд ела where> () есть 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) o i) Если вхождение <имени таблицы > (
    ) содержится в <схе ме > (), то пусть применимым <идентификатором по лномочий > () будет <идентификатор полномочий > (), указанный как <идентификатор полномочий схемы > () этой <схемы > (). ii) Если вхожде ние <имени таблицы > (
    ) содержится в <модуле > (), то пусть применимым <идентификатором полном очий > () будет <идент и фикатор полн омочий > (), указанный как <идентификатор полно мочий модуля > () этого <модуля > (). b) o i) Если применимый <идентификатор полномочий > () является та ким же , как <идентификатор полномочий > (), явно или неявно специфицированный в <имени таблицы > (
    ), то : 1. Если T - баз овая таблица , то применимыми <привилегиями > () являются INSERT, SELECT, UPDATE, DELETE и REFERENCES, и эти <привилегии > () могут передаваться . 2. Если T - представляемая таб лица и не является изменяемой (updatable), то приме нимой <привилегией > () является SELECT, и эта привил егия может передаваться тогда и только то гд а , когда могут передаваться применимые привилегии SELECT ко всем <именам таблиц >, соде ржащимся в <спецификации запроса > (). 3. Если T - изменяемая (updatable) пред ставляемая таблица , то применимыми на T <привиле гиями > () я вляются все <привилегии > () (кр оме REFERENCES), применимые на <имени таблицы > (
    ) T2, указ анном в <разделе from> () <спецификации запроса > (). Привилегия является передаваемой на T в том и только в т ом случае , к огда она является передаваемой на T2. ii) Если применим ый <идентификатор полномочий > () не является таким же , как <идентификатор полномочий > (), явно или неявно специфицированный в < имени та блицы > (
    ), то применимые <определе ния привилегий > () включают все <определения привилегий > (), для которых <имя таблицы > (
    ) такое же , как данное <имя таблицы > (
    ), и для кото р ых <получающие > () либо включают применимый <идентификатор полномочий > (), либо включают PUBLIC, и применимые <привилеги и > () содержат все привилегии , специфицированные в применимых <определениях привилегий > ( ). Привилегия является передаваемой в том и только в том случае , когда она указана в числе <привилегий > () некоторог о применимого <определения привилегии > (), в котором указано WITH GRANT OPTION и у к азан п рименимый <идентификатор полномочий > (). 5. ALL эквивалентно списку <действий > (), включающему все применимые <привилегии > () на данном <имени таблицы > (
    ). 6. Применимые <привилегии > () для <имени таблицы > (
    ) из <определения привилегий > () должны включать <привилегии > (), указанные в <определении привилегий > ().
    1Архитектура и строительство
    2Астрономия, авиация, космонавтика
     
    3Безопасность жизнедеятельности
    4Биология
     
    5Военная кафедра, гражданская оборона
     
    6География, экономическая география
    7Геология и геодезия
    8Государственное регулирование и налоги
     
    9Естествознание
     
    10Журналистика
     
    11Законодательство и право
    12Адвокатура
    13Административное право
    14Арбитражное процессуальное право
    15Банковское право
    16Государство и право
    17Гражданское право и процесс
    18Жилищное право
    19Законодательство зарубежных стран
    20Земельное право
    21Конституционное право
    22Конституционное право зарубежных стран
    23Международное право
    24Муниципальное право
    25Налоговое право
    26Римское право
    27Семейное право
    28Таможенное право
    29Трудовое право
    30Уголовное право и процесс
    31Финансовое право
    32Хозяйственное право
    33Экологическое право
    34Юриспруденция
     
    35Иностранные языки
    36Информатика, информационные технологии
    37Базы данных
    38Компьютерные сети
    39Программирование
    40Искусство и культура
    41Краеведение
    42Культурология
    43Музыка
    44История
    45Биографии
    46Историческая личность
    47Литература
     
    48Маркетинг и реклама
    49Математика
    50Медицина и здоровье
    51Менеджмент
    52Антикризисное управление
    53Делопроизводство и документооборот
    54Логистика
     
    55Педагогика
    56Политология
    57Правоохранительные органы
    58Криминалистика и криминология
    59Прочее
    60Психология
    61Юридическая психология
     
    62Радиоэлектроника
    63Религия
     
    64Сельское хозяйство и землепользование
    65Социология
    66Страхование
     
    67Технологии
    68Материаловедение
    69Машиностроение
    70Металлургия
    71Транспорт
    72Туризм
     
    73Физика
    74Физкультура и спорт
    75Философия
     
    76Химия
     
    77Экология, охрана природы
    78Экономика и финансы
    79Анализ хозяйственной деятельности
    80Банковское дело и кредитование
    81Биржевое дело
    82Бухгалтерский учет и аудит
    83История экономических учений
    84Международные отношения
    85Предпринимательство, бизнес, микроэкономика
    86Финансы
    87Ценные бумаги и фондовый рынок
    88Экономика предприятия
    89Экономико-математическое моделирование
    90Экономическая теория
    
     Анекдоты - это почти как рефераты, только короткие и смешные Следующий
    Эволюция дефицита продуктов в России - от электрички с колбасой до самолета с плесневелым сыром!
    Anekdot.ru
    
    Узнайте стоимость курсовой, диплома, реферата на заказ.
    
    Обратите внимание, реферат по программированию "Общие элементы SQL", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

    Смотрите также:


    Банк рефератов - РефератБанк.ру
    © РефератБанк, 2002 - 2016
    Рейтинг@Mail.ru