Презентация, доклад на тему Введение в SQL (Процедуры и функции)

Содержание

8.1. Хранимые процедуры Процедуры и функции являются специальными подпрограммами, которые можно многократно использовать. Они хранятся на стороне сервера и к ним можно иметь доступ со стороны клиента.Преимущество создания Хранимых процедур: - при обращении к процедуре не нужно

Слайд 1Основы применения языка SQL
Хранимые процедуры, функции и триггеры.
Автор: к.т.н. Герасимов Н.А.

Основы применения языка SQLХранимые процедуры, функции и триггеры.Автор: к.т.н. Герасимов Н.А.

Слайд 28.1. Хранимые процедуры
Процедуры и функции являются специальными подпрограммами, которые можно многократно

использовать. Они хранятся на стороне сервера и к ним можно иметь доступ со стороны клиента.
Преимущество создания Хранимых процедур:
- при обращении к процедуре не нужно писать весь текст SQL-запроса
Процедуры являются общим инструментом
Не требуется предварительного синтаксического анализа SQL-запроса
8.1. Хранимые процедуры	Процедуры и функции являются специальными подпрограммами, которые можно многократно использовать. Они хранятся на стороне сервера

Слайд 3Синтаксис хранимой процедуры
CREATE PROCEDURE /* Список входных параметров */
RETURNS /* Список

выходных параметров */
AS /* Начало тела процедуры */ /* Объявление переменных */ DECLARE VARIABLE <имя перем.><тип перем.>
/*Исполнительная часть */ BEGIN Оператор 1; Оператор 2;
END;
Синтаксис хранимой процедурыCREATE PROCEDURE  /* Список входных параметров */RETURNS /* Список выходных параметров */AS /* Начало

Слайд 4Выполнение процедуры
execute [( < параметры > )]

Выполнение процедуры execute [( < параметры > )]

Слайд 5Переменные
Переменная определяется выражением DECLARE
Присвоение значения переменной SET =значение;
Пример:
DECLARE vname character(25);
SET

vname=“Иванов”; SET vname=SELECT S_NAME FROM Customers WHERE C_KOD=“00001”;

ПеременныеПеременная определяется выражением DECLARE Присвоение значения переменной SET =значение;Пример:DECLARE vname character(25);SET vname=“Иванов”; SET vname=SELECT S_NAME FROM Customers

Слайд 6Пример процедуры
Создание процедуры, которая изменяет значение в столбце cours в таблице

PREDMET
CREATE PROC new_course AS update PREDMET
set cours=cours+1.
Исполнение процедуры
EXEC new_course

Пример процедурыСоздание процедуры, которая изменяет значение в столбце cours в таблице PREDMET   CREATE PROC new_course

Слайд 7Процедура со входными переменными
Пусть заданы: коэффициент индексации (@KF_INDEX) и

сумма стипендии, которая индексируется (@FOR_SUM)
Создание процедуры:
CREATE proc IND_STIP_KF (@KF_INDEX real, @FOR_SUM decimal)
AS
UPDATE STUDENT
SET STIP = STIP*@KF_INDEX
WHERE STIP <= @FOR_SUM
Выполнение процедуры с конкретными значениями индексации :
EXEC IND_STIP_KF @KF_INDEX=1.2, @FOR_SUM=35;

Процедура со входными переменными  Пусть заданы: коэффициент индексации (@KF_INDEX) и сумма стипендии, которая индексируется (@FOR_SUM)Создание процедуры:

Слайд 8Использование условных операторов в процедурах
Структура условного выражения:
IF

Операторы
[ELSE]
[IF <выражение 2>]
операторы
Использование условных операторов в процедурахСтруктура условного выражения:  IF    Операторы  [ELSE]

Слайд 9Пример процедуры индексирования стипендии
Проиндексировать конкретного (задан номер) студента

в том случае, если этот студент посещал определенные занятия (номер предмета).

CREATE PROC IND_STIP_PRED ( @SNUM_ST CHAR(4),
@PNUM_PR CHAR(4), @IND_KF DECIMAL )
AS
IF EXISTS (SELECT SNUM, PNUM FROM USP
WHERE SNUM=@SNUM_ST AND PNUM=@PNUM_PR)
BEGIN
UPDATE STUDETN
SET STIP=STIP*@IND_KF
WHERE SNUM=@SNUM_ST
END
Пример процедуры индексирования стипендии   Проиндексировать конкретного (задан номер) студента в том случае, если этот студент

Слайд 10Вывод сообщений на экран
PRINT

Присвоение значения
SELECT =

Пример. Присвоить

значение переменой @X и вывести на экран сообщение о ее значении переменной
SELECT @X=10
PRINT 'Установлен уровень='
PRINT @X
Вывод сообщений на экранPRINT Присвоение значенияSELECT =Пример. Присвоить значение переменой @X и вывести на экран сообщение о

Слайд 11Циклическое выполнение операций

WHILE
[Операторы]

или

FOR … DO … END FOR;

Циклическое выполнение операцийWHILE [Операторы]илиFOR … DO … END FOR;

Слайд 12Пример организации цикла

Создать процедуру вычисления значения переменной (@X) в цикле.
CREATE PROC

TEST
AS
DECLARE @X INT
DECLARE @I INT
SELECT @I=1
SELECT @X=1
WHILE @I<=100
BEGIN
SELECT @X=@X*2
PRINT 'I+'
PRINT @I
SELECT @I=@I+1
END
Пример организации циклаСоздать процедуру вычисления значения переменной (@X) в цикле.CREATE PROC TESTAS  DECLARE @X INT

Слайд 13Организация «ветвлений» в процедуре

Написать процедуру, которая проверяет входную переменную (@N) и

выдает соответствующее значение из таблицы.
CREATE PROC TEST_INT @N INT
AS
BEGIN
DECLARE @X DECIMAL(9,2)
SELECT @X=
CASE @N
WHEN 1 THEN 20.1
WHEN 2 THEN 30.54
WHEN 3 THEN 70
ELSE 0
END
PRINT 'Установлен уровень='
PRINT @X
END
Организация «ветвлений» в процедуреНаписать процедуру, которая проверяет входную переменную (@N) и выдает соответствующее значение из таблицы.CREATE PROC

Слайд 14Использование системных переменных (@@)
Создать процедуру для выдачи информации о локальном сервере

CREATE PROC NAME_LOCAL_SERVER
AS
PRINT 'Имя локального сервера :'
PRINT @@SERVERNAME
Запуск процедуры
EXEC NAME_LOCAL_SERVER
Имя локального сервера :
BENQ-C9CAB32B6C
Использование системных переменных (@@)Создать процедуру для выдачи информации о локальном сервере  CREATE PROC NAME_LOCAL_SERVER  AS

Слайд 15Пример глобальных переменных

Пример глобальных переменных

Слайд 16Переменные конфигурации системы

Переменные конфигурации системы

Слайд 17Функции
Функции похожи на процедуры и используют те же операторы
Функции могут возвращать

переменные (RETURN)
Функции можно использовать в SQL-операторах
ФункцииФункции похожи на процедуры и используют те же операторыФункции могут возвращать переменные (RETURN)Функции можно использовать в SQL-операторах

Слайд 18Пример создания функции
Функция создает список товаров, которые купил покупатель с кодом

C_KOD и возвращает его в виде списка

CREATE FUNCTION prodduct (@_C_KOD)
RETURNS prod CHAR VARING(400
BEGIN DECLARE prod CHAR VARNYING(400) DEFAULT ‘’; DECLARE x ROW;
FOR x AS SELECT * FROM Orders as T
WHERE T.C_KOD=@C_KOD
DO
IF x.Name <> “”
THEN SET prod=prod || ‘, ‘;
END IF;
SET prod=prod || x.Name;
END FOR;
RETURN prod;
END;


Пример создания функцииФункция создает список товаров, которые купил покупатель с кодом C_KOD и возвращает его в виде

Слайд 19Триггеры
Это автоматически выполняемый процедурный код.
Что дает их применение: - поддержка ссылочной

целостности - автоматизация некоторых важных работ с данными - обновление таблиц - вызов хранимых процедур
ТриггерыЭто автоматически выполняемый процедурный код. Что дает их применение: - поддержка ссылочной целостности - автоматизация некоторых важных

Слайд 20Инициализация триггера
События вызывающие инициализацию: - до и после вставки, выбора или удаления

строки данных - триггер связан с таблицей
Синтаксис создания триггера CREATE TRIGGER <имя триггера > FOR <имя таблицы> [ACTIVATE | INACTIVATE] (BRFORE | AFTE) (UPDATE | INSERT | DELETE) AS BEGIN тело триггера END
Удаление триггера DROP <имя триггера >

Инициализация триггераСобытия вызывающие инициализацию: - до и после вставки, выбора или удаления строки данных - триггер связан

Слайд 21Пример триггера
Создать триггер, который выполняет каскадное удаление в таблице SES_RES при

удалении записи в таблице STUDENTS CREASTE TRIGGER deletion FOR students ACTIVATE AFTE DELETE AS BEGIN DELETE FROM ses_res WHERE ses_res.ST_ID=studerts.ST_ID; END;
Пример триггераСоздать триггер, который выполняет каскадное удаление в таблице SES_RES при удалении записи в таблице STUDENTS

Слайд 22Создание генераторов
Генераторы обеспечивают создание для таблиц автоинктементного типа данных (счетчики) CREATE GENERATOR

<имя генератора> SET GENERATOR <имя генератора> TO <начальное значение>
Обращение к генератору GET_ID(< имя генератора >)
Создание генераторовГенераторы обеспечивают создание для таблиц автоинктементного типа данных (счетчики) CREATE GENERATOR  SET GENERATOR TO Обращение

Что такое shareslide.ru?

Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть