|
Программирование >> Sql: полное руководство
Синтаксис языка 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
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |