Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Создание базы данных магазина по продаже товаров для офиса

Автор:   •  Июнь 24, 2018  •  Контрольная работа  •  885 Слов (4 Страниц)  •  626 Просмотры

Страница 1 из 4

Государственный университет Республики Молдова

Кафедра Математики и Информатики

Индивидуальная работа

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

на тему: «Создание базы данных магазина по продаже товаров для офиса»

                                                                              Выполнила:

студентка II курса,

гр. IA1604

Груя Александра

г. Кишинёв, 2017 г.

В работе представлена база данных магазина по продаже товаров для офиса. В базе 5 таблиц, которые содержат данные о товарах, заказах, клиентах, договорах.[pic 1][pic 2]CREATE

create table TOVAR(tov_id number(4), tov_name varchar2(20), tov_qty number(4), tov_price number(4), constraint pk_tov primary key(tov_id));

create table COMMAND(co_id number(4), cl_id number(4), co_date date, co_qty number(20), co_suc varchar2(4), co_pay varchar2(4), tov_id number(4), constraint co_fk foreign key(cl_id) references CLIENT(cl_id), constraint c_fk foreign key(tov_id) references TOVAR(tov_id));

create table CLIENT(cl_id number(4), cl_name varchar2(20), cl_address varchar2(20), cl_phone number(20), cl_boss varchar2(20), cl_buh varchar2(20), constraint cl_pk primary key(cl_id));

create table CONTRACT_BASE(cn_id number(4), cl_id number(4), date_base date, constraint cb_fk foreign key(cn_id) references CONTRACT(cn_id), constraint cb_k foreign key(cl_id) references CLIENT(cl_id));

create table CONTRACT(cn_id number(4), cn_doc varchar2(50), cn_maker varchar2(20), cn_makernumber number(20), cn_maker address varchar2(20), cn_reciever varchar2(20), cn_recievernumber number(20), cn_recieveraddress varchar2(20), constraint cn_pk primary key(cn_id));

INSERT

insert into TOVAR values(1,'Sculpture', 5,30);

insert into CONTRACT_BASE  values(1,1,’1/2/2017’);



ПОДПРОГРАММЫ

Добавляет новый товар        

create or replace procedure add_tov(n_id in TOVAR.tov_id%type, n_name in TOVAR.tov_name%type, n_qty in TOVAR.tov_qty%type, n_price in TOVAR.tov_price%type)

as

e_name exception; e_price exception;

BEGIN

If n_name=' ' then raise e_name; end if;

If n_price=0 then raise e_price; end if;

insert into TOVAR values(n_id, n_name, n_qty, n_price);

EXCEPTION

When e_name then raise_application_error(-20001, 'TOVAR NAME CANNOT BE EMPTY!');    

when e_price then raise_application_error(-20001, 'TOVAR PRICE CANNOT BE EMPTY!');

end add_tov;

Удаление клиента по имени

create or replace procedure del_cli(name in varchar2)

as

e_name exception; v_name number;

BEGIN

select count(*) into v_name from CLIENT where CLIENT.cl_name=name;

if v_name=0 then raise e_name; end if;

delete from CLIENT where CLIENT.cl_name=name;

EXCEPTION

When e_name then raise_application_error(-20001,'NO SUCH CLIENT!');

End del_cli;

Возвращение количества товара по наименованию

create or replace function get_qty(n_name in varchar2) return number

as

e_name exception; v_qty number; v_count number;

BEGIN

select count(*)into v_count from TOVAR where TOVAR.tov_name=n_name;

if v_count=0 then raise e_name; end if;

select TOVAR.tov_qty into v_qty from TOVAR where TOVAR.tov_name=n_name;

return v_qty;

EXCEPTION

When e_name then raise_application_error(-20001,'NO SUCH TOVAR!');

end get_qty;

Увеличение количества товара по его названию

create or replace procedure rise_qty(n_name in varchar2, n_qty in number)

as

e_name exception; v_name number;

BEGIN

select count(*) into v_name from TOVAR where TOVAR.tov_name=n_name;

if v_name=0 then raise e_name; end if;

update TOVAR

set TOVAR.tov_qty=TOVAR.tov_qty+n_qty

where TOVAR.tov_name=n_name;

EXCEPTION

When e_name then raise_application_error(-20001, 'NO SUCH TOVAR!');

end rise_qty;

Возвращение  содержания договора по имени заказчика

create or replace function get_contract(n_name in CONTRACT.cn_ reciever %type) return CONTRACT.cn_doc%type

as

e_name exception;v_name number; c_name CONTRACT.cn_doc%type;

BEGIN

select count (*) into v_name from CONTRACT where CONTRACT.cn_reciever=n_name;

...

Скачать:   txt (8.8 Kb)   pdf (413.4 Kb)   docx (34.5 Kb)  
Продолжить читать еще 3 страниц(ы) »
Доступно только на Essays.club