Дейт К. Д27 Руководство по реляционной субд db2/ Пер с англ и предисл. М. Р. Когаловского
Вид материала | Руководство |
Приложение с синтаксис операций манипулирования данными языка sql c.1. введение С.2. имена С.з. скалярные выражения С.4. выражения селекции С.5. предикаты С.6. предложения манипулирования данными |
- Рич Р. К. Политология. Методы исследования: Пер с англ. / Предисл. А. К. Соколова, 6313.17kb.
- Рич Р. К. Политология. Методы исследования: Пер с англ. / Предисл. А. К. Соколова, 6313.29kb.
- Сорокин П. А. С 65 Человек. Цивилизация. Общество / Общ ред., сост и предисл., 11452.51kb.
- The guilford press, 6075kb.
- The guilford press, 6075.4kb.
- Курс лекций "Базы данных и субд" Ульянов В. С. Лекция. Целостная часть реляционной, 213.79kb.
- Дэвид Дайчес, 1633.42kb.
- Mathematics and the search for knowledge morris kline, 498.28kb.
- Лекция №1: Стандарты языка sql, 1420.56kb.
- Курс лекций "Базы данных и субд" Ульянов В. С. Лекция. Манипулирование реляционными, 276.31kb.
ПРИЛОЖЕНИЕ С
СИНТАКСИС ОПЕРАЦИЙ МАНИПУЛИРОВАНИЯ ДАННЫМИ ЯЗЫКА SQL
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
арифметический — оператор : : = + | – |*|/
С.4. ВЫРАЖЕНИЯ СЕЛЕКЦИИ
выражение — селекции : : = фраза — select
фраза — from
[фраза — where]
[фраза — группирования [фраза — having]]
фраза — select : : == SELECT [DISTINCT] спецификация — селекции
спецификация — селекции : : = * | список — элемент — селекции
элемент — селекции : : = имя — таблицы.*
| скалярное выражение
фраза — from : : = FROM список — элемент — from
элемент — from : : = имя — таблицы [псевдоним]
фраза — where : : = WHERE предикат
фраза — группирования : : = GROUP BY список — имя — столбца
фраза — having : : = HAVING предикат
С.5. ПРЕДИКАТЫ
предикат
: : = условие
|условие AND предикат
|условие OR предикат
|NOT предикат
условие
: : = условие — сравнения
| условие — between
|условие — like
|условие — in
|условие — exists
условие — сравнения
: : = скалярное — выражение оператор — сравнения скалярное — выражение
|скалярное — выражение оператор — сравнения
(выражение — селекции — для — столбца)
[скалярное—выражение IS [NOT] NULL
оператор – сравнения
: : =+| ¬=| < | ¬ < | <= | > | ¬ > | > =
выражение — селекции — для — столбца
: : = фраза — селекции — для — столбца
фраза — from
[ фраза — where]
[фраза — группирования [фраза — having]]
фраза — селекции — для — столбца
: : = SELECT [DISTINCT] скалярное — выражение
условие — between
: : = имя — столбца [NOT] BETWEEN скалярное — выражение
AND скалярное — выражение условие — like
: : = имя — столбца [NOT] LIKE скалярное — выражение
условие — in
: : = скалярное выражение [NOT] IN (множество — скаляров)
множество — скаляров
: : = список — константа
| выражение — селекции — для — столбца
условие — exists
: := EXISTS (выражение—селекции)
С.6. ПРЕДЛОЖЕНИЯ МАНИПУЛИРОВАНИЯ ДАННЫМИ
предложение
: : = предложение — select
| предложение — update
| предложение — delete
| предложение — insert
предложение — select
: : = выражение — union [фраза — упорядочения];
выражение — union
: : = выражение — селекции [UNION выражение — union]
фраза — упорядочения
: : = ORDER BY список — элемент — упорядочения
элемент — упорядочения
: : = упорядочиваемый — столбец [ASC ] DESC]
упорядочиваемый — столбец
: : = имя — столбца | целое
предложение — update
: : = UPDATE имя — таблицы [псевдоним]
SET список — присваивание — столбцу [фраза — where];
присваивание — столбцу
: : = имя — столбца = скалярное — выражение
| имя — столбца = NULL
предложение — delete
: : = DELETE FROM имя — таблицы [псевдоним] [фраза — where]
предложение — insert
: : = INSERT INTO имя — таблицы (список — имя — столбца)
исходные — значения;
исходные — значения
: : = VALUES (список — элемент — вставки)
| выражение — селекции
элемент — вставки
: : = константа | NULL