PL/SQL является расширением SQL, предлагаемым Oracle. Подобно расширению Transact-SQL, PL/SQL является процедурным языком, структурированным в виде логических блоков программного кода. Блок PL/SQL состоит из трех разделов, два из которых необязательны. Первый раздел представляет собой раздел DECLARE (раздел объявлений) и яшшется необязательным. В разделе DECLARE содержатся переменные, курсоры и константы. Второй раздел - это раздел PROCEDURE (раздел выполняемых операторов), состоящий из условных команд и операторов SQL. Именно в этом разделе осуществляется управление всем блоком, поэтому раздел PROCEDURE является в блоке обязательным. Третий раздел называется разделом EXCEPTION (разделом исключительных состояний), и в нем задается реакция программы на ошибки выполнения и заданные программистом исключительные ситуации. Раздел EXCEPTION в блоке является необязательным. В PL/SQL имеется возможность использования переменных, констант, атрибутов, циклов, обработчиков исключительных ситуаций, отображения сообщений для программиста, управления транзакциями, сохранения процедур, триггеров и пакетов.
Вот пример оператора PL/SQL.
DECLARE
CURSOR EMP_CURSOR IS SELECT EMP_ID, LAST_NAME, FIRST_NAME, MID_INIT
FROM EMPLOYEE_TBL;
EMP_REC EMP_CURSOR%ROWTYPE;
BEGIN
OPEN EMP_CURSOR;
LOOP
FETCH EMP_CURSOR INTO EMP_REC;
EXIT WHEN EMP_CURSOR%NOTFOUND;
IF (EMP_REC.MID_INIT IS NULL) THEN
UPDATE EMPLOYEE_TBL
SET MID_INIT = 'X'
WHERE EMP_ID = EMP_REC.EMP_ID;
COMMIT;
END IF;
END LOOP;
CLOSE EMP_CURSOR;
END;
В данном операторе представлены два из упомянутых выше разделов блока - разделы DECLARE и PROCEDURE. Сначала с помощью запроса объявляется курсор EMP_CURSOR. После этого объявляется переменная EMP_REC, чей тип данных совпадает с типом данных (%ROWTYPE) столбцов объявленного курсора. Первым шагом в разделе PROCEDURE (начинающемся оператором BEGIN) является открытие курсора. После этого для просмотра всех записей курсора используется оператор LOOP, заканчивающийся ключевыми словами END LOOP. Для всех строк курсора, в которых средний инициал имени служащего пропущен (т. е. равен NULL), данные таблицы EMPLOYEEJTBL должны быть обновлены. Обновление состоит в добавлении среднего инициала 'X'. После этого изменения подтверждаются, и курсор, наконец, закрывается.
MySQL представляет собой многопользовательское многозадачное приложение баз данных SQL типа клиент/сервер. MySQL состоит из сетевого сервера (демона), терминальной программы-клиента, нескольких дополнительных программ-клиентов и ряда библиотек. Главные преимущества MySQL - скорость работы, надежность и простота использования. Изначально приложение MySQL разрабатывалось для обеспечения быстрого доступа к очень большим базам данных.
Приложение MySQL можно найти в Internet по адресу http://www.mysql.com. Чтобы установить программные файлы MySQL, вам потребуется программа gunzip, чтобы разжать предлагаемый бинарный файл, и подходящая версия программы TAR, чтобы распаковать входящие в него файлы Предлагаемый в Internet бинарный файл будет иметь название mysql-VERSiON-os. tar. gz, где VERSION означает идентификатор версии MySQL, а OS - название соответствующей операционной системы.
Вот пример выполнения запроса в системе MySQL.
mysql> SELECT CURRENT_DATE(),VERSION();
+----------------+------------+
| current date() | version () |
+----------------+------------+
| 1999-08-09 | 3-22.23b |
+----------------+------------+
1 row in set (0.00 sec)
mysql>
Интерактивные операторы SQL - это такие операторы SQL, которые сами спрашивают о необходимых переменных, параметрах и других необходимых для их выполнения данных Скажем, у вас имеется интерактивный оператор SQL для создания в базе данных записей с информацией о новых пользователях. Такой оператор SQL может попросить вас ввести учетную запись нового пользователя, его реальное имя и номер контактною телефона. Такой оператор применяется для ввода информации об одном новом пользователе или о многих одновременно. Без такого оператора для каждого из пользователей пришлось бы выполнить свой отдельный оператор CREATE ScR Интерактивный оператор SQL может запросить у вас информацию о привилегиях для создаваемого пользователя Не все производители предлагают интерактивные опера юры SQL. вам придется уточнить это по документации, сопровождающей систему управления базой данных В следующих разделах приводятся примеры использования интерактивных операторов SQL в базах данных Oracle.
В Oracle предусмотрена передача параметров операторам, которые в противном случае оставались бы статическими операторами SQL.
SELECT EMP_ID, LAST_NAME, FIRST_NAME
FROM EMPLOYEEJTBL