Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы экзамена / вопросы к экзамену 2017 — копия.docx
Скачиваний:
56
Добавлен:
09.12.2018
Размер:
498.33 Кб
Скачать
  1. Сценарии и пакеты, управляющие конструкции sql

Ответ:

Сценарий – набор операторов SQL, сохраненный в файле.

Пакет – это последовательность инструкций и управляющих конструкцией SQL.

Блок инструкций

Блок инструкций может состоять из одного или нескольких инструкций языка SQL. Каждый блок начинается с инструкции BEGIN и заканчивается инструкцией END.

BEGIN

Инструкция_1

Инструкция_2

END

Инструкция IF

Инструкция IF выполняет одну или несколько составляющих блок инструкций, если логическое выражение, следующее после ключевого слова IF, возвращает значение TRUE (истина). Если же

инструкция IF содержит оператор ELSE, то при условии, что логическое выражение возвращает значение FALSE (ложь), выполняется вторая группа инструкций.

IF (условие)

BEGIN

….

END

ELSE

BEGIN

….

END

Инструкция WHILE

Инструкция WHILE выполняет одну или несколько инструкций, находящихся в блоке BEGIN…END пока выполняется условие, заключенное в скобки.

Блок внутри инструкции WHILE может содержать инструкции:

  • BREAK останавливает выполнение инструкций внутри блока и начинает исполнение инструкций, следующих сразу же после этого блока;

  • CONTINUE останавливает выполнение только текущей инструкции в блоке и начинает выполнять его с самого начала.

Синтаксис:

WHELE (условие)

BEGIN

END

  1. Хранимые процедуры

Ответ:

Хранимая процедура – это специальный тип пакета инструкций SQL.

Хранимая процедура сохраняется в виде объекта БД. Она сохраняется на стороне сервера, чтобы улучшить производительность и постоянство выполнения повторяемых задач.

ХП предварительно компилируется перед тем, как она будет сохраняется в виде объекта в БД. Далее сохраненная форма постоянно используется при ее каждом вызове.

Цели использования ХП:

  • Управления авторизацией доступа;

  • Создание аудиторского следа действий с таблицами БД.

Синтаксис создания ХП: CREATE PROCEDURE имя_процедуры (@параметр1, @параметр2, …)

AS

Запросы

Пример: создание ХП для изменения данных таблицы

CREATE PROCEDURE increate_budget (@percent INT = 5)

AS UPDATE Project

SET Budget = Budget + Budget * @percent / 100;

Жизненный цикл хранимой процедуры состоит из двух этапов: ее создания и ее выполнения. Каждая процедура создается один раз, а выполняется многократно. Хранимая процедура выполняется посредством инструкции EXECUTE пользователем, который является владельцем процедуры или обладает правом EXECUTE для доступа к этой процедуре. Инструкция EXECUTE имеет следующий синтаксис.

Синтаксис вызова ХП:

EXECUTE имя_процедуры (параметры)

Пример:

EXECUTE increase_budget 10;

  1. Триггеры

Ответ:

Триггер – это механизм, который вызывается, когда в указанной таблице происходит определенное действие.

Основные составляющие триггера:

  • Имя – может содержать максимум 128 символов.

  • Действие – может быть или инструкцией DML (INSERT, UDPATE, DELETE) или инструкцией DDL. Т.о. существуют 2 типа триггеров: триггеры DML и триггеры DDL.

  • Исполнение – состоит из ХП или пакета.

Создание триггеров:

CREATE TRIGGER имя_триггера

ON {имя_таблицы | имя_представления}

[WITH dml_trigger_option [,...]]

{FOR | AFTER | INSTEAD OF} {[INSERT] [,] [UPDATE] [,] [DELETE]}

[WITH APPEND] {AS sql_statement | EXTERNAL NAME method_name}

AFTER – триггеры данного типа вызываются после выполнения действия, запускающего его (можно создавать только для таблиц).

INSTEAD OF - выполняются вместо действия, запускающего триггер.

Параметры INSERT, UPDATE и DELETE задают действие триггера.