1. Введение

Настоящий документ «Руководство по SQL» содержит полное описание языковых средств, используемых для работы с системой управления базами данных РЕД База Данных. Он предназначен для администраторов баз данных, для разработчиков, проектирующих базы данных, и для программистов, пишущих программы, работающие с данными из базы данных. Использование настоящего документа не требует предварительного знакомства с другими документами.

Документ содержит множество примеров, иллюстрирующих применение языковых конструкций SQL.

В документе 28 глав и 11 приложений.

Глава 2 содержит общие сведения о реляционных базах данных, в нем приводится список объектов базы данных РЕД База Данных, описывается структура языка и основные синтаксические конструкции SQL, дается краткая информация о структуре данных на диске (On-Disk Structure, ODS) и о диалектах базы данных.

В главе 3 рассматриваются элементы, которые являются общими для всех реализаций языка SQL — выражения, которые используются для извлечения и работают на утверждениях о данных, и предикатов, которые проверяют истинность этих утверждений.

Глава 4 содержит подробные сведения об используемых в SQL типах данных, описываются допустимые операции над различными типами данных, средства преобразования одних типов данных в другие, приводится список предварительно определенных литералов и контекстных переменных.

Глава 6 содержит детальное описание характеристик транзакций — режимов доступа, уровней изоляции, режимов разрешения блокировок, средств резервирования. Приводится синтаксис операторов работы с транзакциями.

В главе 7 описываются языковые средства по созданию, изменению и удалению баз данных, подключение к существующей базе данных, удаление базы данных, приводится множество примеров создания однофайловых и многофайловых баз данных.

В главе 8 описываются языковые средства создания и удаления оперативных копий (shadow).

В главе 9 подробно рассматриваются языковые средства создания, изменения и удаления доменов.

В главе 10 описываются языковые средства для работы с таблицами базы данных и с генераторами. Описывается синтаксис и семантика операторов создания, изменения и удаления таблиц. Подробно описываются ограничения столбца и таблицы. Рассматриваются встроенные функции SQL. Вкратце рассматриваются вопросы выбора первичных ключей таблиц.

Глава 12 посвящена операторам, позволяющим вносить изменения в существующие таблицы базы данных. Рассматривается множество примеров добавления, изменения и удаления данных. Подробно рассматривается наиболее сложный и мощный оператор SQL, осуществляющий выборку данных. Детально рассматриваются все предложения оператора, в том числе, предложение PLAN, позволяющее задать пользовательский план выборки данных. Приводится большое количество примеров сложной выборки и упорядочения данных, выполнения объединения (UNION), соединения (JOIN) данных из нескольких таблиц, различных способов ограничения количества выводимых данных.

В главе 13 описываются средства работы с генераторами — создание, удаление, изменение текущего значения генераторов.

В главе 15 описывается порядок использования индексов для таблиц. Рассматриваются операторы создания индекса, изменения активности, удаления и улучшения селективности (избирательности) индекса.

В главе 16 рассматривается работа с представлениями (view). Приводится описание операторов создания и удаления представлений. Подробно описываются средства, позволяющие перевести неизменяемые представления в изменяемые. Даются примеры создания и использования различных представлений. Приводятся тексты нескольких системных представлений.

В главе 17 описываются операторы создания, модификации и удаления исключений, которые можно вызывать и обрабатывать в PSQL коде.

В главе 18 описывается язык хранимых процедур, функций, пакетов и триггеров PSQL. Здесь описывается объявления локальных переменных и курсоров, операторы присваивания, условные операторы, операторы циклов, выброса пользовательского исключений, средства для обработки ошибок, отправки сообщений (событий) клиентским программам и многое другое.

Глава 19 содержит описание операторов создания, модификации и удаления хранимых процедур. Приводятся примеры различных выполняемых хранимых процедур, хранимых процедур выбора.

Глава 20 содержит описание операторов создания, модификации и удаления хранимых функций.

Глава 21 содержит описание операторов создания, модификации и удаления триггеров. Различают табличные триггеры, DDL триггеры и триггеры на события базы данных. Приводятся примеры различных триггеров.

В главе 22 описываются операторы создания, модификации и удаления заголовков и тел пакетов.

В главе 24 дается описание встроенного в СУБД планировщика заданий, который создан, чтобы отменить необходимость использования средств ОС для создания заданий, выполняемых по расписанию. Описываются операторы создания, модификации и удаления планировщика.

В главе 25 описывается синтаксис операторов создания, изменения и удаления внешних хранимых процедур, функций и триггеров, написанных на Java. Приводятся примеры.

В главе 26 дается полное описание средств полнотекстового поиска, которые реализованы в РЕД Базе Данных.

В главе 29 приводятся списки ключевых (используемых в лексике, в словарном запасе SQL) слов и списки зарезервированных слов (слов, которые не могут быть использованы для имен объектов базы данных или переменных и параметров в хранимых процедурах или триггерах).

Глава 30 содержит список кодов ошибок, которые могут возникнуть при работе с базой данных.

Глава 31 содержит список всех системных таблиц, в которых хранятся метаданные объектов базы данных.

В главе 33 приводится список доступных наборов символов. Для каждого набора символов перечисляются порядки сортировки.

В главе 34 описываются функции, определенные пользователем, которые поставляются вместе с системой. Задается форма обращения к этим функциям.

Глава 35 содержит краткое описание синтаксиса и семантики всех операторов. Операторы располагаются в алфавитном порядке. Это приложение может служить кратким справочником по операторам SQL.

Глава 36 содержит краткое описание синтаксиса и семантики всех встроенных функций. Функции располагаются в алфавитном порядке. Это приложение может служить кратким справочником по функциям SQL.

Глава 37 содержит краткое описание синтаксиса и семантики всех контекстных переменных SQL. Переменные располагаются в алфавитном порядке. Это приложение может служить кратким справочником по контекстным переменным SQL.

Глава 32 содержит список всех системных пакетов. На данный момент содержит описание пакета для работы с часовыми поясами.

Глава 38 содержит краткое описание синтаксиса и семантики всех языковых конструкций, допустимых только в языке хранимых процедур и триггеров. Операторы располагаются в алфавитном порядке. Это приложение может служить кратким справочником по PSQL.

Глава 39 содержит список региональных часовых поясов и их идентификаторов.