Программирование >>  Sql: полное руководство 

1 ... 231 232 233 [ 234 ] 235 236 237 ... 264









Синтаксис языка SQL



в стандарте ANSI/ISO синтаксис языка SQL описывается с помощью формальнЬй BNF-нотации (форма Бэкуса-Наура). К сожалению, по определенным причинам стандарт является трудным для чтения и восприятия. Во-первых, в стандарте язык описывается по принципу снизу вверх , а не сверху вниз , что не позволяет получить общее представление об инструкциях SQL. Во-вторых, в стандарте употребляются не всегда понятные термины (например, предикат или табличное выражение). И наконец, описание синтаксиса в стандарте имеет очень много уровней и затрагивает даже самые мелкие детали языка, скрывая тем самым общую, относительно простую его структуру.

В данном приложении представлены упрощенные синтаксические диафаммы инсфукций SQL в том виде, в каком они реализованы в больщинстве СУБД. В частности:

описаны те части языка, поддержка которых фебуется от СУБД для совместимости со стандартом SQL2 на уровне Entry Level, плюс те элементы уровней Intermediate Level и Full Level, которые реализованы в больщинстве СУБД;

не описан модульный язык, поскольку во всех существующих на сегоднящний день СУБД он заменен всфоенным SQL или API-функциями;

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

Для BNF-нотации в данном приложении приняты следующие соглащения:

все ключевые слова набраны прописными буквами моноширинным шрифтом;

элементы синтаксиса набраны курсивом;

выражение вида список-элементов означает элемент или список элементов, разделенных запятыми;

символ вертикальной черты означает возможность выбора между несколькими альтернативами;

квадратные скобки представляют необязательные элементы;

фигурные скобки указывают на необходимость выбора между обязательными элементами.

Инструкции DDL

Эти инсфукции определяют сфуктуру базы данных, включая ее таблицы, представления и объекты, специфичные для той или иной СУБД:

create table таблица [список-элементов-определения-таблицы)

drop table таблица [параметры-удаления]

alter table таблица действие-при-изменении

create view представление [{список-столбцов)] as спецификация-запроса [with check option]

drop view представление [параметры-удаления]



create тип-объекта имя-объекта [спецификация-объекта] drop тип-объекта [параметры-удаления] alter тип-объекта действие-при-изменении

grant {all privileges I список-привилегий)

on [таблица I тип-объекта имя-объекта]

то {public 1 список-пользователей] [with grant option]

revoke [grant option for] {all [privileges] 1 список-привилегий) on [таблица 1 ткп-объекта имя-объекта] from (public I список-пользователей)

[restrict i cascade параметры-удаления]

Ключевые слова, используемые для задания объектов базы данных {тип-объекта), зависят от СУБД. К типичным объектам относятся таблицы (table), представления (view), схемы (schema), хранимые процедуры (procedure), домены (domain), индексы (index), а также именованные области хранения, поддерживаемые самой СУБД. Синтаксис задания этих объектов также специфичен для конкретной СУБД. Конкретный набор действий в инструкциях alter зависит от СУБД и от типа объекта.

Элемент

элемент-определения-таблицы определение-столбца

ограничение-столбца

ограничение-таблицы

уникальность

ограничение-внешнего-ключа ссылка-внешнего-ключа

действие-при-удалении-ссылки

условие-на-значения

проверка-ограничения

привилегия

параметры-удаления

null}]

ссылка-внешнего-ключа \

Синтаксис

определение-столбца \ ограничение-таблицы

столбец тип-данных

[default [литерал I user I [ список-ограничений-столбца]

[constraint имя-ограничения] {not null I уникальность условие-на-значения \ [ проверка-ограничения]

[constraint имя-ограничения] [уникальность \ ограничение-внешнего-ключа \ условие-на-значения ] [проверка-ограничения]

unique {список-столбцов) \ primary key [список-столбцов]

foreign key [список-столбцов) ссылка-внешнего-ключа

references таблица [ (список-столбцов) ]

[match full I partial]

[on delete действие-при-удолснии-ссылки]

cascade I set null 1 set default not null

check (условие-отбора)

[initially immediate initially deferred] [[not] deferrable]

select 1

delete I

update [ (список-столбцов) ]

insert [ (список-столбцов) ]

cascade I restrict



1 ... 231 232 233 [ 234 ] 235 236 237 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика