Введение в структурный язык запросов SQL, страница 2

*  вставку, обновление и удаление строк в таблице

*  создание, замену, изменение и удаление объектов

*  управление доступом к базе данных и ее объектам

*  обеспечение согласованности и целостности базы данных

Более ранние СУБД часто использовали отдельный язык для каждой из перечисленных выше категорий задач. SQL унифицирует все эти задачи, позволяя выразить их на едином согласованном языке.

Общий язык для всех реляционных СУБД ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

----------------

Встроенный SQL

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

* всех команд SQL, таких как SELECT и INSERT, доступных в интерактивных инструментах SQL

*  команд управления потоком выполнения, таких как PREPARE и

OPEN, с помощью которых стандартные команды SQL интегрируются в процедурный язык программирования

Встроенный SQL также включает расширения для некоторых стандартных команд SQL. В главе 4, "Команды", представлены команды SQL как в их стандартной форме, так и в форме встроенного SQL.

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

Каждый из следующих прекомпиляторов ORACLE транслирует программы встроенного SQL в конкретный процедурный язык программирования:

*  прекомпилятор Pro*Ada

*  прекомпилятор Pro*C

*  прекомпилятор Pro*COBOL

*  прекомпилятор Pro*FORTRAN

*  прекомпилятор Pro*Pascal

*  прекомпилятор Pro*PL/I

Определение прекомпиляторов ORACLE содержится в документе Programmer's Guide to the ORACLE Precompilers.                                    

Термины встроенного SQL

~~~~~~~~~~~~~~~~~~~~~~~

На протяжении данного руководства используются следующие термины встроенного SQL:

:host_variable (хост-переменная). Языковая переменная, которая определена согласно правилам процедурного языка и используется в предложении SQL. Хост-переменная может иметь предопределенный тип или быть массивом, определенным пользователем, и может включать ассоциированную с ней индикаторную переменную.

Хост-переменные можно использовать лишь там, где разрешается специфицировать числовые или символьные выражения. Перед хост-переменной должно кодироваться двоеточие, чтобы отличить ее от имени объекта схемы. Нельзя использовать хост-переменные вместо ключевых слов SQL или имен объектов схем.

В этом руководстве также используются термины для обозначения хост-переменных с конкретными типами данных, такие как :host_integer или :host_string.

cursor                                     Идентификатор курсора.

db_name                                 идентификатор неумалчиваемой базы данных.

db_string                                 строка идентификации базы данных для  соединения

через SQL*Net. За подробностями обратитесь к руководству пользователя для вашего конкретного протокола SQL*Net.

имя_предложения обозначает идентификатор предложения SQL или имя_блока блока PL/SQL.

----------------

Лексические соглашения

Приведенные здесь лексические соглашения по кодированию предложений SQL касаются конкретной реализации SQL, принадлежащей Oracle, но обычно применимы и во всех прочих реализациях SQL.

При кодировании предложения SQL, в любом месте, где определение команды подразумевает "пропуск", вы можете включить любое число пробелов, символов табуляции или возврата каретки, а также комментариев. Так, следующие два предложения вычисляются в ORACLE одинаково:

SELECT ENAME,SAL*12,MONTHS_BETWEEN(HIREDATE,SYSDATE) FROM EMP

SELECT ENAME,

SAL * 12,

MONTHS_BETWEEN( HIREDATE, SYSDATE )

FROM   EMP

Прописные и строчные буквы не различаются в зарезервированных словах, ключевых словах, идентификаторах и параметрах. Однако прописные и строчные буквы различаются в текстовых литералах, а также в именах, заключенных в кавычки. Обратитесь к описанию синтаксиса для элемента 'Текст' на странице 2-17.

----------------

Поддержка SQL в инструментах ORACLE

Большинство инструментов ORACLE поддерживают все возможности SQL в реализации ORACLE. Однако не все инструменты поддерживают все средства. Данное руководство описывает функциональные возможности SQL во всей полноте. Если инструмент ORACLE, который вы используете, поддерживает не все возможности SQL, то обсуждение соответствующих ограничений вы можете найти в документации по этому инструменту, такой как PL/SQL User's Guide and Reference.