- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Таблица A
- •Таблица A
- •Таблица A
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Элементы языка SQL
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Физическое проектирование БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •Технологии построения информационных систем – приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
- •: Проектирование приложений БД
Элементы языка SQL
Работа с хранимыми процедурами
Оператор EXIT
Оператор EXIT инициирует прекращение выполнения процедуры и выход в вызывающее приложение.
Пример:
CREATE PROCEDURE MAX_VALUE ( А INTEGER, B INTEGER ) RETURNS ( M_V INTEGER ) AS
DECLARE VARIABLE TMP INTEGER; BEGIN
IF ( :A IS NULL OR :B IS NULL ) THEN EXIT; IF ( :A > :B ) THEN M_V = :A ;
ELSE M_V = :B ; END
Элементы языка SQL
Работа с хранимыми процедурами
Оператор EXECUTE PROCEDURE
Оператор вызова другой хранимой процедуры:
EXECUTE PROCEDURE имя [параметр [, параметр … ] ] ; [ RETURNING_VALUES параметр [, параметр … ] ];
Пример:
…
EXECUTE PROCEDURE AVG_KOLVO (:IN_TOVAR) RETURNING_VALUE :AVG_KOLVO_TOVAR;
…
Элементы языка SQL
Работа с хранимыми процедурами
Оператор POST_EVENT
Оператор применяется для посылки сервером клиентским приложениям сообщения о наступлении какой либо ситуации, связанной с именем события.
POST_EVENT “Имя события”;
Элементы языка SQL
Работа с хранимыми процедурами
Изменение и удаление ХП
Изменение ХП:
ALTER PROCEDURE ИмяПроцедур
[ ( входной_параметр тип_данных [, входной_параметр тип_данных … ] ) ] [ RETURNS
( выходной_параметр тип_данных [ , выходной_параметр тип_данных … ] ) ] AS
< тело процедуры>
Удаление ХП:
DROP PROCEDURE ИмяПроцедуры;
Элементы языка SQL
Работа с триггерами
Общие понятия
Триггер – это процедура в БД, автоматически вызываемая SQL-сервером при обновлении, удалении или добавлении новой записи в таблицу БД.
По событию изменения триггеры различают на вызываемые при:
•Добавлении новой записи
•Изменении существующей записи
•Удалении записи
По отношению к событию, влекущему их вызов, триггеры различаются на:
•Выполняемые до наступления события
•Выполняемы после наступления события
Элементы языка SQL
Работа с триггерами
Общие понятия
Особенности:
•Непосредственно обратиться к триггеру нельзя
•Нельзя передавать параметры и получать значения выходных параметров
•Триггер всегда реализует действие
Преимущества использования триггеров:
•Автоматическое обеспечение каскадных воздействий, выполняющихся на сервере.
•Изменения в триггерах не влекут необходимости изменения клиентских приложений.
•Обязательное выполнение бизнес-правил, реализованных с использованием триггеров для всех приложений работающих с БД.
•Все изменения вносимые триггером выполняются в рамках одной транзакции. Как следствие, при откате транзакции откатываются также и все изменения, внесенные в БД триггерами.
Элементы языка SQL
Работа с триггерами
Создание триггеров
Триггер создается оператором:
CREATE TRIGGER ИмяТриггера FOR ИмяТаблицы [ ACTIVE | INACTIVE ]
{ BEFORE | AFTER }
{ DELETE | INSERT | UPDATE } [ POSITION номер ]
AS
[<объявление локальных переменных>] BEGIN
<оператор> END
Элементы языка SQL
Работа с триггерами
Создание триггеров
Пример (обеспечение каскадных воздействий):
CREATE TRIGGER AD_TOVARY FOR TOVARY ACTIVE
AFTER DELETE POSITION 1 AS
BEGIN
DELETE FROM RASHOD
WHERE RASHOD.TOVAR = TOVARY.TOVAR; END`
Элементы языка SQL
Работа с триггерами
Значения OLD и NEW
Значение OLD.имя_столбца позволяет обратиться к состоянию столбца, имевшему место до внесения возможных изменений, а значение NEW.имя_столбца - к состоянию столбца, имевшему место после внесения возможных изменений.
Пример:
CREATE TRIGGER BU_TOVARY FOR TOVARY
ACTIVE
BEFORE UPDATE
AS
BEGIN
IF ( OLD.TOVAR <> NEW.TOVAR ) THEN
UPDATE RASHOD
SET TOVAR = NEW.TOVAR
WHERE TOVAR = OLD.TOVAR;
END
Элементы языка SQL
Работа с триггерами
Изменение и удаление триггеров
Изменение существующего триггера:
ALTER TRIGGER ИмяТриггера FOR ИмяТаблицы [ ACTIVE | INACTIVE ]
{ BEFORE | AFTER }
{ DELETE | INSERT | UPDATE } [ POSITION номер ]
AS <тело триггера>
Удаление триггера:
DROP TRIGGER ИмяТриггера