СУБД MS SQL Server: разработка пользовательских функций, хранимых процедур, триггеров, представлений, курсоров

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ П. О. СУХОГО

Факультет автоматизированных и информационных систем

Кафедра «Информационные технологии»

ОТЧЕТ   ПО   ЛАБОРАТОРНОЙ   РАБОТЕ   №7

по дисциплине «Базы данных»

на тему:СУБД MS SQL Server: разработка пользовательских функций, хранимых процедур, триггеров, представлений, курсоров.

Выполнила:     студентка гр. ИТ-32

Принял:           

Дата сдачи отчета:         _____________________

Дата допуска к защите: _____________________

Дата защиты:                 _____________________

Гомель 2011

Лабораторная работа 7

Цель работы: изучение технологий создания основных объектов БД, разработки программных модулей в СУБД MS SQL Server.

Задание: В разработанной средствами СУБД MS SQL Server по заданию лабораторной работы 6 БД "Платежи студентов" создать следующие:

1) Пользовательские функциипо одной функции каждого из типов:

-  скалярные функции;

-  табличные функции (Inline, Multistatement).

2) Хранимые процедуры

3) Триггеры (DML, DDL).

4) Курсоры (статический, динамический; использование для: выборки данных, модификация данных).

(Самостоятельно задать исходные данные, назначение и выполняемые операции создаваемых объектов БД; протестировать их работу)

1. Разработка пользовательских функций

1.1 Создать пользовательскую скалярную функцию, которая будет возвращать:

сумму всех хранящихся платежей (без параметров);

ALTER FUNCTION [dbo].[skal_func]

()

RETURNS money

AS

BEGIN

DECLARE @a money

Set @a=(SELECT SUM(СуммаОплаты) FROM Платежи)

RETURN (@a)

END

Scala_funс  - название функции. Функция без параметров и возвращает результат денежного типа. Описываем переменную  @a, в которую будет записываться результат и которая будет возвращать функцией. Производим суммирование всех строк столбца СуммаОплаты с помощью функции Sum.

Синтаксис вызова: SELECT dbo.ScalaFunc()

1.2  Создать пользовательскую табличную функцию Inline, которая будет возвращать следующую информацию:

данные о всех платежах, произведенных в заданный промежуток времени;

ALTER FUNCTION [dbo].[Inline_func]

(

@before nchar(10), @after nchar(10)

)

RETURNS TABLE

AS

RETURN

(

SELECT * FROM dbo.Платежи

WHERE (dbo.Платежи.ДатаОплаты>=CONVERT(date, @before) and dbo.Платежи.ДатаОплаты<=CONVERT(date,@after))

)

Inline_func – название функции. В функцию передаётся 2 параметра типа nchar(задаем промежуток времени). Функция возвращает таблицу значений . В таблицу будут выводиться значения полей из таблицы «Платежи», если данные будут входить в заданный промежуток.

Синтаксис вызова: SELECT * FROM dbo.Inline_func( '2011-01-11', '2011-10-11')

1.3 Создать пользовательскую табличную функцию Multistatement, которая будет выполнять следующую обработку данных:

перевести всех студентов на следующий курс и удалить всех выпускников;

ALTER FUNCTION [dbo].[Multi_func]

()

RETURNS @студенты1 TABLE (ФИО nchar(10),

ДатаПоступления date, Группа nchar(10))

AS

BEGIN

DECLARE @группа int

INSERT INTO @студенты1

SELECT dbo.Студенты.ФИО, dbo.Студенты.ДатаПоступления, (CONVERT(int, Группа)+10) FROM dbo.Студенты

WHERE  ABS(2013-YEAR(dbo.Студенты.ДатаПоступления))<6

RETURN

END

GO

Multi_funс- название функции. В функцию не передаются параметры. Функция возвращает таблицу значений . В функции создаётся новая таблица @студенты1 с полями ФИО, ДатаПоступления и Группа и в неё помещается результат работы функции SELECT,в ней выбираются записи о студентах, которые учатся меншьне 6 лет.

Синтаксис вызова: SELECT * FROM dbo.Multi_func()

Перед                                                                                                После

                             

2.  Разработка хранимых процедур

2.1Разработать хранимую процедуру с входными параметрами, которая выводит сумму платежей, уплаченную студентами заданного факультета

ALTER PROCEDURE [dbo].[Viborka]

@fakultet nchar(20)

AS

BEGIN

SELECT dbo.Студенты.ФИО, dbo.Платежи.СуммаОплаты, dbo.Платежи.ДатаОплаты,dbo.Платежи.Цель

FROM  dbo.Студенты INNER JOIN  dbo.Платежи  ON  dbo.Студенты.КодСтудента= dbo.Платежи.КодСтудента

WHERE  dbo.Студенты.СокрНазФак=@fakultet

END

Viborka - название функции. В функцию передаётся 1 параметр символьного типа(факультет). В функции производится выборка данных из таблиц Студенты и Платежи, если значение поля Факультет совподает с заданным значением.

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.