Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Неделя 02 Лекция 1 (3).doc
Скачиваний:
5
Добавлен:
13.11.2019
Размер:
369.66 Кб
Скачать

3.6. Создание и использование Script-файла.

Текст SQL-запросов может быть оформлен в виде файла и затем выполнен (элемент меню File \ Run an ISQL Script). Преимущество такого подхода очевидно в тех случаях, когда необходимо периодически выполнять повторяющиеся последовательности операторов. Операторы создания БД, таблиц, процедур, триггеров и т.д. также могут выполняться из отдельного Script-файла.

Для случая создания в Script-файле хранимых процедур и триггеров необходимо применять оператор

SET TERM НовыйРазделитель;

Необходимость его применения связана с тем, что стандартным разделителем SQL-операторов является точка с запятой ';'. В WISQL этот разделитель можно опускать, а вот в SQL-скрипте разделитель обязателен. Как известно, в теле хранимых процедур и триггеров операторы разделяются таким же разделителем:

CREATE PROCEDURE FIND_MAX_KOLVO (IN_TOVAR VARCHAR(20))

RETURNS(MAX_KOLVO INTEGER) AS

BEGIN

SELECT MAX(KOLVO)

FROM RASHOD

WHERE TOVAR = : IN_TOVAR

INTO : MAX_KOLVO;

SUSPEND;

END;

Поэтому перед выполнением оператора CREATE PROCEDURE или CREATE TRIGGER устанавливают новый разделитель, завершают им одно или несколько идущих подряд определений процедур и триггеров, а затем восстанавливают старый разделитель. Например:

SET TERM ###;

CREATE PROCEDURE FIND_MAX_KOLVO (IN_TOVAR VARCHAR(20))

RETURNS(MAX_KOLVO INTEGER) AS

BEGIN

SELECT MAX(KOLVO)

FROM RASHOD

WHERE TOVAR = : IN_TOVAR

INTO : MAX_KOLVO;

SUSPEND;

END ###

SET TERM ; ###

При вводе и выполнении SQL-операторов непосредственно в окне WISQL, автоматически формируется последовательность операторов

SET TERM ^;

SET TERM ;^.

Пример Script-файла.

set names WIN1251;

connect "d:\book\ib_sklad\ib_sklad.gdb" USER "SYSDBA"

PASSWORD "masterkey";

drop database;

create database "d:\book\ib sklad\ib_sklad.gdb" USER "SYSDBA"

PASSWORD "masterkey"

default character set WIN1251;

connect "d:\book\ib_sklad\ib_sklad.gdb" USER "SYSDBA" PASSWORD "masterkey";

*/Идут операторы, предназначенные для создания доменов*/

*/ Далее идут операторы, которые создают таблицы базы данных ib_sklad.gdb.*/

SET TERM ### ;

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

SET TERM ; ###

*/ Идут операторы, которые заносят информацию в базу данных*/

COMMIT;

Контрольные вопросы:

  1. Что такое процесс физического проектирования базы данных?

  2. Сформулируйте основную цель физического проектирования базы данных?

  3. Что подразумевается под способом физической реализации логического проекта базы данных в случае реляционной модели данных?

  4. Почему необходимо отделять фазы концептуального и логического проектирования от фазы физического проектирования СУБД.

  5. Какие возможности должен предоставлять пользователю язык работы с базами данных?

  6. Какие два основных компонента языка SQL Вы знаете? Для чего они предназначены?

  7. Какие типы команд присутствуют в SQL, а какие отсутствуют?

  8. Какие способы использования языка SQL в плане организации вычислительного процесса Вам известны?

  9. Является ли язык SQL процедурным языком? Почему?

  10. Что значит свободный формат записи операторов и поддерживает ли его язык SQL?

20