Автор работы: Пользователь скрыл имя, 05 Декабря 2013 в 06:33, курсовая работа
База данных ассоциации шеф-поваров необходима для оперативного учета сотрудников и партнеров ассоциации; динамичного контроля актуальной информации.
Целью работы является составление и заполнение базы данных ассоциации шеф-поваров, заполнение всех сотрудников, партнеров, блюд и заказов.
Введение 4
Проектирование базы данных 5
Создание и заполнение таблиц 12
Запросы 35
Представления. 56
Процедуры 57
Триггеры 69
Курсор 71
Заключение. 74
Список используемой литературы 75
select
dbo.product.name_product, count(dbo.product.name_
from product, Zakaz3, recept, recept_product, bludo1, klient_bludo1
where dbo.product.product_id=dbo.
and dbo.recept_product.recept_id=
and dbo.recept_product.recept_
and dbo.bludo1.bludo_id=dbo.
and dbo.klient_bludo1.klient_
and dbo.zakaz3.data_zakaza between '2013-05-01' AND '2013-05-05'
group by dbo.product.name_product
Рисунок 3.16 - Запрос 16
select name_bludo, time_prigotovlenia_min
from dbo.bludo1
where time_prigotovlenia_min > (select AVG(time_prigotovlenia_min) from bludo1)
Group by name_bludo, time_prigotovlenia_min
Рисунок 3.17 - Запрос 17
select MIN(time_prigotovlenia_min) 'Минимальная скорость приготовления'
from bludo1
Рисунок 3.18 - Запрос 18
select name_product
from product
where srok_dney Like 43
Рисунок 3.19 - Запрос 19
select COUNT(sklad_id)'Количество полок'
from sklad
Рисунок 3.20 - Запрос 20
select name_bludo, time_prigotovlenia_min
from dbo.bludo1
where time_prigotovlenia_min = (select MAX(time_prigotovlenia_min) from bludo1)
Order by time_prigotovlenia_min
Рисунок 3.21 - Запрос 21
select name_product, srok_dney
from product
where srok_dney < (select avg(srok_dney) from product)
Group by name_product, srok_dney
Рисунок 3.22 - Запрос 22
select COUNT(dbo.Zakaz3.zakaz_id)' Количество заказов'
from dbo.Zakaz3
where dbo.zakaz3.data_zakaza BETWEEN '2013-05-02' AND '2013-05-03'
Рисунок 3.23 - Запрос 23
select Sum(dbo.Zakaz3.cena_bluda_za_
from dbo.Zakaz3
where dbo.zakaz3.data_zakaza BETWEEN '2013-05-05' AND '2013-05-07'
Рисунок 3.24 - Запрос 24
select count(dbo.product.product_id)'
from dbo.product
where dbo.product.mesto_na_sklade = '1'
Рисунок 3.25 - Запрос 25
select SUM(dbo.Zakaz3.cena_bluda_za_
from klient_bludo1, zakaz3, klient
where dbo.zakaz3.zakaz_id=dbo.
Рисунок 3.26 - Запрос 26
select COUNT(sklad_id)'Количество полок'
from sklad
where sklad_id like '%1'
Рисунок 3.27 - Запрос 27
select MAX(time_prigotovlenia_min) 'Максимальная скорость приготовления'
from bludo1
where bludo_id like '%5'
Рисунок 3.28 - Запрос 28
select count(dbo.klient.klient_id)'
from dbo.klient
where dbo.klient.adres_dostavki like 'Комбинтская%'
Рисунок 3.29 - Запрос 29
select time_prigotovlenia_min, count(dbo.povar.povar_id)'кол-
from bludo1, povar, recept, recept_product, povar_recept
where dbo.recept_product.recept_id=
and dbo.recept_product.recept_
and dbo.povar.povar_id=dbo.povar_
and dbo.povar_recept.recept_id=
group by time_prigotovlenia_min
Рисунок 3.30 - Запрос 30
select count(dbo.zakaz3.zakaz_id) 'Количество заказов'
from Zakaz3
Рисунок 3.31 - Запрос 31
select dbo.bludo1.tip, count(dbo.povar.povar_id)'
from dbo.bludo1, dbo.povar, dbo.recept, dbo.recept_product, dbo.povar_recept
where dbo.bludo1.recept_product_id
= dbo.recept_product.recept_
AND dbo.recept.recept_id = dbo.recept_product.recept_id
AND dbo.povar.povar_id = dbo.povar_recept.povar_id
and dbo.povar_recept.recept_id =dbo.recept.recept_id
group by dbo.bludo1.tip
HAVING dbo.bludo1.tip='Первое блюдо'
Рисунок 3.32 - Запрос 32
select
dbo.bludo1.name_bludo, sum(dbo.Zakaz3.cena_bluda_za_
from dbo.bludo1, dbo.zakaz3, dbo.klient, dbo.klient_bludo1
where dbo.klient_bludo1.klient_id = dbo.klient.klient_id
AND dbo.Zakaz3.klient_bludo_id
= dbo.klient_bludo1.klient_
AND dbo.bludo1.bludo_id = dbo.klient_bludo1.bludo_id
group by dbo.bludo1.name_bludo
HAVING dbo.bludo1.name_bludo='Салат Оливье'
Рисунок 3.33 - Запрос 33
select data_zakaza, COUNT(dbo.Zakaz3.zakaz_id)'
from dbo.zakaz3
group by data_zakaza
HAVING dbo.Zakaz3.data_zakaza LIKE '2013%'
Рисунок 3.34 - Запрос 34
select srok_dney, COUNT(dbo.product.product_id)'
from product
group by srok_dney
having srok_dney like '%4'
Рисунок 3.35 - Запрос 35
select
data_zakaza, sum(dbo.Zakaz3.cena_bluda_za_
from dbo.zakaz3
group by data_zakaza
HAVING dbo.Zakaz3.data_zakaza LIKE '2013-05-03'
Рисунок 3.35 - Запрос 35
select adres_dostavki
from dbo.klient
where klient_id = 6;
Рисунок 3.36 - Запрос 36
select zakaz_id, cena_bluda_za_zakaz_rub
from dbo.zakaz3, dbo.klient, dbo.klient_bludo1
where dbo.klient.klient_id=3
and dbo.klient.klient_id=dbo.
Рисунок 3.37 - Запрос 37
select name_povar
from dbo.povar, dbo.recept_product, dbo.bludo1, dbo.povar_recept, dbo.recept
where dbo.bludo1.name_bludo='Салат
греческий' and dbo.povar.povar_id=dbo.povar_
Рисунок 3.38 - Запрос 38
select dbo.assocciacia_shef_povarov.
from dbo.Partner, dbo.assocciacia_shef_povarov
where dbo.Partner.asp_id
= dbo.assocciacia_shef_povarov.
AND dbo.Partner.uslugi LIKE 'Поставка%'
ORDER BY name_asp;
Рисунок 3.39 - Запрос 39
select dbo.zakaz3.zakaz_id, dbo.zakaz3.data_zakaza
from dbo.zakaz3
where dbo.zakaz3.data_zakaza BETWEEN '2013-05-01' AND '2013-05-03'
Рисунок 3.40 - Запрос 40
select dbo.bludo1.name_bludo, dbo.zakaz3.data_zakaza
from dbo.bludo1, dbo.zakaz3, dbo.klient, dbo.klient_bludo1
where dbo.bludo1.bludo_id = '5'
AND dbo.klient_bludo1.klient_id = dbo.klient.klient_id
AND dbo.Zakaz3.klient_bludo_id
= dbo.klient_bludo1.klient_
AND dbo.bludo1.bludo_id = dbo.klient_bludo1.bludo_id
ORDER BY name_bludo
Рисунок 3.41 - Запрос 41
select dbo.bludo1.name_bludo, dbo.zakaz3.data_zakaza
from dbo.bludo1, dbo.zakaz3, dbo.klient, dbo.klient_bludo1
where (dbo.bludo1.name_bludo='роллы Филадельфия' or dbo.bludo1.name_bludo='Салат оливье')
AND dbo.klient_bludo1.klient_id = dbo.klient.klient_id
AND dbo.Zakaz3.klient_bludo_id
= dbo.klient_bludo1.klient_
AND dbo.bludo1.bludo_id = dbo.klient_bludo1.bludo_id
Рисунок 3.42 - Запрос 42
select dbo.bludo1.tip, dbo.povar.name_povar
from dbo.bludo1, dbo.povar, dbo.recept, dbo.recept_product, dbo.povar_recept
where dbo.bludo1.tip='Второе блюдо'
AND dbo.bludo1.recept_product_id
= dbo.recept_product.recept_
AND dbo.recept.recept_id = dbo.recept_product.recept_id
AND dbo.povar.povar_id = dbo.povar_recept.povar_id
and dbo.povar_recept.recept_id =dbo.recept.recept_id
Рисунок 3.44 - Запрос 44
select dbo.povar.name_povar
from dbo.bludo1, dbo.povar, dbo.recept, dbo.recept_product, dbo.povar_recept
where dbo.bludo1.tip='Второе
блюдо' and dbo.bludo1.time_prigotovlenia_
AND dbo.bludo1.recept_product_id
= dbo.recept_product.recept_
AND dbo.recept.recept_id = dbo.recept_product.recept_id
AND dbo.povar.povar_id = dbo.povar_recept.povar_id
and dbo.povar_recept.recept_id =dbo.recept.recept_id
Рисунок 3.45 - Запрос 45
1.4.10.Название ассоциации с поваром Иванова Кристина Николаевна
select dbo.assocciacia_shef_povarov.
from dbo.assocciacia_shef_povarov, dbo.povar, dbo.shef
where dbo.povar.name_povar='Иванова Кристина Николаевна'
AND dbo.assocciacia_shef_povarov.
AND dbo.shef.shef_id = dbo.povar.shef_id
Рисунок 3.46 - Запрос 46
go
create view dbo.OProducte as
select dbo.product.product_id, dbo.product.srok_dney
from dbo.product, dbo.sklad, dbo.product_sklad
where dbo.product.product_id = dbo.product_sklad.product_id
AND dbo.sklad.sklad_id = dbo.product_sklad.sklad_id
AND dbo.sklad.polka_na_sklade = '4';
go
create view dbo.InfaOassociacii_ as
select dbo.assocciacia_shef_povarov.
from dbo.shef, dbo.assocciacia_shef_povarov, dbo.partner
where dbo.shef.asp_id =
dbo.assocciacia_shef_povarov.
AND dbo.assocciacia_shef_povarov.
go
create view dbo.InfaOKliente1 as
select dbo.klient.klient_id, adres_dostavki ,name_bludo, data_zakaza
from dbo.klient, dbo.bludo1, dbo.klient_bludo1, dbo.zakaz3
where dbo.klient.klient_id = dbo.klient_bludo1.klient_id
AND dbo.klient_bludo1.bludo_id = dbo.bludo1.bludo_id
AND dbo.klient_bludo1.klient_
go
create procedure NameBludoPoKODy4 @nomer int as
select bludo_id, name_bludo
from bludo1
where bludo_id = @nomer;
go
exec NameBludoPoKODy4 @nomer = 2;
Рисунок 5.1 - Процедура 1
go
create procedure dbo.KodReceptaPoNaime @Name varchar(max) as
select dbo.recept.recept_id, dbo.recept.name_recept
from dbo.recept
where dbo.recept.name_recept = @Name;
go
exec dbo.KodReceptaPoNaime @Name = 'Рецепт Салат греческий';
Рисунок 5.2 - Процедура 2
go
create procedure dbo.KodBludaPoKlientam @Kod tinyint as
select dbo.bludo1.bludo_id, dbo.klient.adres_dostavki
from dbo.klient, dbo.bludo1, dbo.klient_bludo1
where dbo.klient_bludo1.bludo_id=
AND dbo.klient_bludo1.klient_id=
AND dbo.bludo1.bludo_id = @Kod
ORDER BY bludo_id;
go
exec dbo.KodBludaPoKlientam @Kod = 8;
Рисунок 5.3 - Процедура 3
create procedure dbo.BludoPoAdresaZakaza1 @Adres varchar(max) as
select dbo.bludo1.name_bludo, dbo.klient.adres_dostavki
from dbo.bludo1, dbo.klient, dbo.klient_bludo1
where
dbo.bludo1.bludo_id = dbo.klient_bludo1.bludo_id
AND dbo.klient_bludo1.klient_id = dbo.klient.klient_id
AND dbo.klient.adres_dostavki = @Adres
ORDER BY name_bludo;
go
exec dbo.BludoPoAdresaZakaza1 @Adres = 'Комбинтская,3';
Рисунок 5.4 - Процедура 4
go
create procedure dbo.InfaOassociacii2 @name_asp varchar(max) as
select *
from dbo.InfaOassociacii_
where name_asp = @name_asp;
go
exec dbo.InfaOassociacii2 @name_asp = 'Новосибирская ассоциация';
Рисунок 5.5 - Процедура 5
go
create procedure dbo.InfaOKliente11 @kliente int as
select *
from dbo.InfaOKliente1
where klient_id = @kliente;
go
exec dbo.InfaOKliente11 @kliente = '1';