
- •Мова адміністрування бд (мабд)
- •Група Data Control Language (dcl)
- •Група Transaction Control Language (tcl)
- •Група Cursor Control Language (ccl)
- •Пр иклади використання операторів адміністрування
- •Створення і ліквідація ролей
- •Передача привілеїв і ролей
- •Уявлення (View)
- •Поняття збереженої процедури
- •Збережені процедури в конкретних середовищах
- •Типи збережених процедур
- •Створення, зміна і видалення збережених процедур
- •Виконання збереженої процедури .
- •6.5. Визначення тригера в стандарті мови sql
- •Реалізація тригерів в середовищі ms sql Server
- •Типи тригерів
- •Програмування тригера
- •6.7. Технології використання sql
- •Поняття інтерактивного sql
- •Утиліта інтерактивного доступу isql субд Sybase sql Anywhere
- •Приклад використання інтерактивного sql в субд mysql
Виконання збереженої процедури .
Для виконання збереженої процедури, використовується команда:
[[ ЕХЕС [ UTE] ім ’я процедури [; номер]
[[@іи ’я_параметра=]{ значення @ш ’я_переменной}
[OUTPUT ] [DEFAULT]] [...п]
Якщо виклик збереженої процедури, не є єдиною командою в пакеті, то присутність команди EXECUTE обов'язкова. Більш того, ця команда потрібна для виклику процедури з тіла іншої процедури або тригера. Використання ключового слова OUTPUT при виклику процедури вирішується тільки для параметрів, які були оголошені при створенні процедури з ключовим словом OUTPUT.Konu ж при виклику процедури для параметра указується ключове слово DEFAULT, то буде використано значення за умовчанням. Природно, вказане слово DEFAULT дозволяється тільки для тих параметрів, для яких визначено значення за умовчанням.
З синтаксису команди EXECUTE видно, що імена параметрів можуть бути опущені при виклику процедури. Проте в цьому випадку користувач повинен указувати значення для параметрів в тому ж порядку, в якому вони перераховувалися при створенні процедури. Привласнити параметру значення за умовчанням, просто пропустивши його при перерахуванні не можна. Якщо ж потрібно опустити параметри, для яких визначено значення за умовчанням, достатньо явної вказівки імен параметрів прн виклику збереженої процедури. Більш того, у такий спосіб можна перераховувати параметри і їх значення в довільному порядку. Відзначимо, що; при виклику процедури указуються або імена параметрів із значеннями, або тільки значення без імені параметра. їх комбінування не допускається.
Приклад 6.2. Процедура.без параметрів. Розробити процедуру для отримання назв дисциплін і оцінок на екзаменах, студентом Закревським. CREATE PROC my_procl AS
SELECT course, course title Exam, mark
AS Mark stud, name FROM stud INNER JOIN (exam INNER JOIN ON stud, stud id-exam. stud id)
ON exam, course _id=course. course id WHERE stud, name = 'Закревський'
Приклад 6.3. Процедура для отримання назв дисциплін і оцінок , отриманих студентом Закревським.
Для звернення до процедури можна використовувати команди:
EX EC туjprocl або ту_procl Процедура повертає набір даних.
Приклад 6.4. Процедура без параметрів. Створити процедуру для збільшення стипендії студентам третього курсу на 10%.
CREA ТЕ PROC ту_ргос2 AS
UPDATE STUD SETSTUD_STYPEND =STUD_STYPEND *1.1 WHERE StudYear='3’
Приклад 6.5. Процедура збільшення стипендії студентам третього року навчання на 10%.
Для звернення до процедури можна використовувати команди:
ЕХЕС ту_ргос2 або ту_ргос2 Процедура не повертає жодних даних.
Приклад 6.6. Процедура з вхідним параметром. Розробити процедуру для отримання назв дисциплін і оцінок на екзаменах, певним студентом CREATE PROC ту_ргосЗ @k VARCHAR(20)
AS
SELECT course, coursetitle Exam, mark
AS Mark stud, name FROM stud INNER JOIN (exam INNER JOIN exam ON stud. stud_id-exam. stud id)
ON exam, course_id-course. с ourse_id WHERE Stud. Name=@k Приклад 6.7. Процедура для отримання назв дисциплін і оцінок , отриманих заданим студентом.
Для звернення до процедури можна використовувати команди:
ЕХЕС ту_ргосЗ ’Закревський’ або ту_proc3 @к- ’Закревський ’
Приклад 6.8. Процедура з вхідними параметрами. Процедура збільшення стипендії студентам певного року навчання на певний %.
CREA ТЕ PROC ту_ргос4 @/ VARCHAR(2) @р FLOAT AS
UPDATE STUD SETSTUD STYPEND =STUD_STYPEND *(l+@p) WHERE StudYear-@t Для звернення до процедури можна використовувати команди:
EXEC my_proc4 '30.15 або
EXEC my_proc4 @/='i', @p-0.15
Приклад. 6.9. Використання вкладених процедур. Створити процедуру дія визначення середній бал, групи, в якій перебуває даний студент
Спочатку розробимо процедуру для визначення фірми, де працює співробітник.
CREA ТЕ PROC ту jproc 7 @п VARCHAR(20)
@f VARCHAR(20) OUTPUT
SELECT (Sjf=Group FROM stud
WHERE Name=@n Потім створимо процедуру, що підраховує загальну кількість товару, який куплений фірмою, що цікавить нас.
CREATE PROC ту_ргос8 @fam VARCHAR(20)
@avmark FLOAT OUTPUT AS
DECLARE @firm VARCHAR(20)
EXEC my_proc7 @fam,@group OUTPUT SELECT (a).avmark=Average (Mark, mark)
FROM stud INNER JOIN exam ON stud.stud_id=exam, stud id GROUP BY stud.group HA VING stud.group=@firm Приклад. 6.10. Створення процедури для визначення загальної кількості товарів, придбаних фірмою, в якій працює певний співробітник.
Виклик процедури здійснюється за допомогою команди:
DECLARE @kINT
EXEC ту_ргос8 'Закревський’,@к OUTPUT SELECT @к