Создание набора хранимых процедур, в соответствии с тематикой разрабатываемой базы. SQL сценарий, для создания хранимой процедуры

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

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

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

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

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

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

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

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

Министерство транспорта Российской Федерации

Департамент Водного Транспорта

НГАВТ

Кафедра ИС

ОТЧЕТ

По лабораторной работе №3

Выполнил: 

студенты группы ИТ-42

                                                                                                                     

                                             Проверил: 

Ю.

Новосибирск 2007

1. Цели и задачи

Цель: Создать набор хранимых процедур, в соответствии с тематикой разрабатываемой базы.

Задачи:

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

II.  Реализовать на языке SQL сценарий(-ии), для создания хранимых процедур.

III.  Научиться использовать локальные и глобальные (например, ROW_COUNT) переменные.

IV.  Научиться использовать встроенные функции:

a).  COUNT

b).  MAX

c).  SUBSTRING

d).  EXTRACT

V.  Научиться использовать управляющие структуры:

a).  WHILE … DO

b).  IF…THEN…ELSE

.

2. Введение

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

Для облегчения и автоматизации работы с БД используются процедуры и  встроены функции.

3. Ход работы

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

SET TERM ^ ;

CREATE PROCEDURE NEW_PROCEDURE (

sel_name varchar(20))

returns (

ret_pay decimal(15,2))

as

declare variable all_pay decimal(15,2);

begin

SELECT SUM(PAY) FROM company

WHERE COMPANYNAME =:sel_name INTO :all_pay;

IF (row_count=0) THEN all_pay=0;

IF (:all_pay>5000) THEN ret_pay =all_pay-(all_pay*20)/100;

ELSE ret_pay=all_pay-(all_pay*5)/100;

suspend;

end^

SET TERM ; ^

GRANT SELECT ON COMPANY TO PROCEDURE NEW_PROCEDURE;

GRANT EXECUTE ON PROCEDURE NEW_PROCEDURE TO SYSDBA;

3.2 Примеры использования встроенных функций

3.2.1 Count

select count(age) from phisicheskie_lica;

3.2.2  Max

select max(age) from phisicheskie_lica;

3.2.3  Substring

select (phisicheskie_lica.sname||''||substring(phisicheskie_lica.name from 1 for 1)||'.'||substring(phisicheskie_lica.pname from 1 for 1))

from phisicheskie_lica;

3.2.4 Extract

select extract(year from cast('now' as timestamp)) - extract(year from cast(:birthday as timestamp))

+ case when extract (month from cast('now' as timestamp)) >= extract (month from cast(:birthday as timestamp)) and

extract (day from cast('now' as timestamp)) >= extract (day from cast(:birthday as timestamp))

then 0 else -1 end

from rdb$database

3.2 Использование управляющих структур while do и if then else

SET TERM ^ ;

CREATE PROCEDURE SSP$DATE_INC (

adate date,

y smallint,

m smallint,

d smallint)

returns (

out_date date)

as

declare variable y0 smallint;

declare variable m0 smallint;

declare variable d0 smallint;

declare variable month_inc smallint;

begin

if(   (:adate is null)

or (:y is null)

or (:m is null)

or (:d is null)) then exit;

y0 = extract(year from :adate) + :y;

m0 = extract(month from :adate);

if(:m > 0) then month_inc = 1;

else month_inc = -1;

while(:m <> 0) do begin

m0 = :m0 + :month_inc;

if(:m0 = 13) then begin m0 = 1; y0 = :y0 + 1; end

else if(:m0 = 0) then begin m0 = 12; y0 = :y0 - 1; end

m = :m - :month_inc;

end

d0 = extract(day from :adate);

while(:out_date is null) do begin

out_date = :y0 || '-' || :m0 || '-' || :d0;

end

out_date = :out_date + :d;

suspend;

end^

SET TERM ; ^

GRANT EXECUTE ON PROCEDURE SSP$DATE_INC TO SYSDBA;

4. Выводы

В лабораторной работе мы научились создавать хранимые процедуры, использовать встроенные функции и управляющие структуры.

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

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

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

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

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

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

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

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