Добавил:
Факультет ИКСС, группа ИКВТ-61 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / lektsii / лекция 6.ppt
Скачиваний:
53
Добавлен:
03.04.2019
Размер:
168.45 Кб
Скачать

Лекция 6. Хранимые процедуры и функции

Определение ХП

Преимущества ХП

Параметры ХП

Хранимые функции

Определение курсора

Определение хранимой процедуры

Хранимая процедура — это SQL-код, хранящийся непосредственно на сервере.

Хранимые процедуры появились в СУБД My SQL, начиная с версии 5.0.0.

Хранимые процедуры и привилегии

Начиная с версии 5.0.3, СУБД My SQL требует от пользователя наличия следующих привелегий при работе с хранимыми процедурами:

Для создания ХП — привелегия CREATE

ROUTINE;

Для редактирования и удаления ХП - ALTER

ROUTINE;

Для вызова ХП - EXECUTE.

Преимущества хранимых процедур

Повторное использование кода;

Сокращение сетевого трафика;

Безопасность;

Простота доступа;

Выполнение деловой логики.

Создание хранимой процедуры

Для создания хранимой процедуры

существуют два оператора: CREATE

PROCEDURE и CREATE FUNCTION

CREATE PROCEDURE sp_name ([parametr[,...]])

[characteristik...] routine_body

CREATE FUNCTION sp_name ([parametr[,...]]) RETURNS type

[characteristik...] routine_body

Параметры процедуры

IN | OUT | INOUT | param_name type

IN — данные передаются строго внутрь хранимой процедуры;

OUT — данные передаются строго из хранимой процедуры;

INOUT — значение параметра принимается во внимание и внутри процедуры и на выходе из нее.

Хранимые функции

Оператор CREATE FUNCTION создает хранимую функцию.

Функция в отличие от процедуры может

вызываться непосредственно, без оператора

CALL;

Функция может возвращать одно значение;

Значение подставляется в место вызова функции.

Определение курсора

Курсор — это логическая сущность, которая ведет себя как таблица, но таковой не является.

Курсоры иногда называют виртуальными таблицами.

Курсоры

При помощи оператора DECLARE объявляется курсор для отдельного оператора SELECT или для отдельной процедуры.

Оператором OPEN производится открытие курсора.

Используя оператор FETCH, осуществляется установление указателя на требуемую запись курсора. При этом значения полей текущей записи присваиваются переменным, указываемым в операторе FETCH. Обычно это конструкция помещается в итеративный элемент (иначе сказать, цикл), который прерывается по некоторому условию.

Курсоры

Курсоры должны быть объявлены до их использования. Переменные с условиями объявляются прежде курсоров. Обработчики объявляются строго после объявления курсоров.

Соседние файлы в папке lektsii