C. 1. Введение

В данном разделе приводится представленная в виде нормальных форм Бэкуса (Язык нормальных форм Бэкуса — формальный метаязык, используемый для описания синтаксиса различных языков программирования, языков описания данных и других искусственных языков. Впервые был предложен Д. Бэкусом для описания синтаксиса алгоритмического языка АЛГОЛ-60.— Примеч. пер.) грамматика четырех операций манипулирования данными языка SQL (SELECT, UPDATE, DELETE и INSERT), описанных в этой книге. В этой грамматике используется следующее удобное сокращение:

— Если «xyz» — какая-либо синтаксическая категория, то «список-xyz» — это синтаксическая категория, которая представляет собой список, состоящий из одной или более «xyz». При этом каждая пара смежных «xyz» в списке разделяется последовательностью литер, включающей запятую, а также, возможно, предшествующие ей и следующие за ней один или более пробелов.

Категории «идентификатор», «константа» и «целое» являются по отношению к этой грамматике терминальными.

Примечание. Не описанные в тексте этой книги аспекты четырех рассматриваемых предложений, например операторы сравнения >ANY, =ALL и др., игнорируются. Кроме того, в интересах ясности и краткости предлагаемая грамматика не отражает точно диалекта языка SQL, поддерживаемого системой DB2, и является в некоторой степени нестрогой в том смысле, что она допускает генерацию определенных конструкций, которые оказываются недопустимыми в DB2. Она позволяет, например, использовать в качестве аргумента такой функции, как AVG, ссылку на другую функцию, скажем, SUM, что не допускается в DB2.

С.2. ИМЕНА

имя — таблицы:: = имя — базовой — таблицы

| имя — представления | псевдоним) синоним

имя — базовой — таблицы:: = [имя — пользователя.] идентификатор

имя — пользователя:: = идентификатор

имя — представления:: = [имя — пользователя.] идентификатор

псевдоним:: = идентификатор

синоним:: = идентификатор

имя—столбца::= [имя—таблицы.] идентификатор

С.З. СКАЛЯРНЫЕ ВЫРАЖЕНИЯ

скалярное — выражение

.:: скалярный—терм [арифметический—оператор скалярное — выражение]

скалярный — терм:: = [+ | –] скалярное — значение

скалярное — значение:: = имя — столбца

| ссылка — на — функцию | константа | USER

| (скалярное — выражение)

ссылка — на — функцию:: = COUNT (*)

| имя — функции (скалярное — выражение)

| имя — функции (DISTINCT имя — столбца)

имя — функции:: = COUNT | SUM|AVG | MAX | MIN

арифметический — оператор:: = + | – |*|/


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: