Слайд 2ПОРЯДОК ВЫПОЛНЕНИЯ
Изучить теоретический материал (см. лекцию «Процедурный SQL»).
Установить демонстрационную БД «Проездные школьника».
Изучить
примеры из текста лабораторной работы.
Используя примеры, создать в демонстрационной БД функцию vozrast() и хранимые процедуры all_classes_info ().
Разработать функции и процедуры из заданий для самостоятельного выполнения.
В качестве результата работы предоставить 4 sql-файла (по одному для каждого задания), содержащих код для создания функции/процедуры. В качестве имени использовать N_FamiliyaIO.sql, где N – номер задания.
Слайд 3ХРАНИМЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
Слайд 4ХРАНИМЫЕ ПРОЦЕДУРЫ
CREATE PROCEDURE <имя_процедуры>
( [ [IN | OUT | INOUT ]
параметр1 [,...] ] )
{[NOT] DETERMENISTIC}
{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
BEGIN
<тело_процедуры>
END
Слайд 5ФУНКЦИИ
CREATE FUNCTION <имя_функции> ( [<параметр1> тип_данных [,...] ] )
RETURNS тип_данных
[NOT] DETERMENISTIC
{ CONTAINS
SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
BEGIN
<тело_функции>
END
Слайд 6ПРОЦЕДУРА ДЛЯ СУММЫ ДВУХ ЧИСЕЛ
Слайд 7ФУНКЦИЯ ДЛЯ СУММЫ ДВУХ ЧИСЕЛ
Слайд 8ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ
Слайд 9ЗАДАНИЕ №1
Изменить функцию vozrast() таким образом, чтобы при ее вызове рассчитывался возраст
ученика на текущую дату (по его id).
Слайд 10ЗАДАНИЕ №2
СОЗДАТЬ ФУНКЦИЮ ДЛЯ РАСЧЕТА ВЫПЛАТЫ НА РУКИ З/П
На вход поступает следующая
информация:
количество рабочих дней за месяц,
количество отработанных дней в отчетном периоде,
оклад.
зарплата=оклад*отработанные_дни/всего_рабочих.
Сумма на руки=зарплата*(1-0,13-0,01)=зарплата*0,86.
Пример расчета: месяц – май, рабочих дней в месяце (за исключением выходных и праздничных) – 10, всего рабочих дней в месяце мае – 23, оклад – 25751,00 рубль.
ЗП=25751*10/23=11196,09
На руки=ЗП*0,86=11196,09*0,86=9628,63.
Слайд 11ЗАДАНИЕ №3
СУММА, ВЫДАННАЯ НА РУКИ
На вход поступает:
количество рабочих дней за месяц,
количество отработанных дней в отчетном периоде,
сумма оклада.
Вывести результат в виде (прописать заголовки):
Слайд 12ЗАДАНИЕ №4
Вывести отформатированную информацию о количестве учеников в заданном классе (по id):
Класс – год обучения и литеру (3 «а»),
Номер школы (9),
Количество учеников.