
Рабочий скрипт базы данных
Описать выбранную серверную СУБД и созданный скрипт базы данных. Выбранные места листинга описать в основной части отчета. Основной листинг вынести в приложение.
Create database if not exists `Apteka Kadamtcev` character set utf8 collate utf8_general_ci;
Show create database `Apteka Kadamtcev`; //создаём бд
Use `Apteka Kadamtcev`;
Create table `Postavshik` //создаём таблицу поставщик, и заполняем её
(`ID postavshika` int(11) not null auto_increment,
`Naimenovanie` char(20) not null,
`Telephone` char(20) not null ,
Primary key(`ID postavshika`) );
Insert into `Postavshik` (`ID postavshika`, `Naimenovanie`, `Telephone`) values ('1', 'Kolyan', '8912361');
Insert into `Postavshik` (`ID postavshika`, `Naimenovanie`, `Telephone`) values ('2', 'Igor', '89129012');
Insert into `Postavshik` (`ID postavshika`, `Naimenovanie`, `Telephone`) values ('3', 'Antoha', '89112341');
Insert into `Postavshik` (`ID postavshika`, `Naimenovanie`, `Telephone`) values ('4', 'Vovan', '891212312');
Create table `Postavki`//создаём таблицу поставки
(`ID postavki` int(11) not null,
`ID postavshika` int(11) not null auto_increment,
`ID lekarstva` int(11) not null,
`Postavshik` int(11) not null,
`Data` date ,
Foreign key(`ID postavshika`) References `Postavshik`(`ID postavshika`));
Create table `Lekarstvo` //Создаём таблицу лекарство
(`ID lekarstvo` int(11) not null auto_increment,
`Naimenovanie` char(20) not null,
`Data isgotovlenia` date not null,
`Cena` int(11) not null,
`Data godnosti` date not null,
`Recept` char(40) not null,
`Kol-vo` int(11) not null,
Primary key(`ID lekarstvo`));
//Далее мы вводим данные в таблицу.
Insert into `Lekarstvo` (`ID lekarstvo`, `Naimenovanie`, `Data isgotovlenia`,`Cena`,`Data godnosti`,`Recept`,`Kol-vo`) values ('1', 'Paracetomol', '2012-01-02', '16','2014-03-08','q','10');
Insert into `Lekarstvo` (`ID lekarstvo`, `Naimenovanie`, `Data isgotovlenia`,`Cena`,`Data godnosti`,`Recept`,`Kol-vo`) values ('2', 'Analgin', '2011-01-02', '22','2014-03-08','w','15');
Insert into `Lekarstvo` (`ID lekarstvo`, `Naimenovanie`, `Data isgotovlenia`,`Cena`,`Data godnosti`,`Recept`,`Kol-vo`) values ('3', 'Teraflu', '2012-01-02', '100','2014-03-08','e','20');
Insert into `Lekarstvo` (`ID lekarstvo`, `Naimenovanie`, `Data isgotovlenia`,`Cena`,`Data godnosti`,`Recept`,`Kol-vo`) values ('4', 'Antigrippin', '2012-01-02', '120','2014-03-08','r','2');
Insert into `Lekarstvo` (`ID lekarstvo`, `Naimenovanie`, `Data isgotovlenia`,`Cena`,`Data godnosti`,`Recept`,`Kol-vo`) values ('5', 'Alka-zeltser', '2012-01-02', '243','2014-03-08','t','3');
Insert into `Lekarstvo` (`ID lekarstvo`, `Naimenovanie`, `Data isgotovlenia`,`Cena`,`Data godnosti`,`Recept`,`Kol-vo`) values ('6', 'Alka-prim', '2012-01-02', '107','2014-03-08','y','12');
Insert into `Lekarstvo` (`ID lekarstvo`, `Naimenovanie`, `Data isgotovlenia`,`Cena`,`Data godnosti`,`Recept`,`Kol-vo`) values ('7', 'Ameloteks', '2012-01-02', '498','2014-03-08','u','6');
Insert into `Lekarstvo` (`ID lekarstvo`, `Naimenovanie`, `Data isgotovlenia`,`Cena`,`Data godnosti`,`Recept`,`Kol-vo`) values ('8', 'Apolin', '2012-01-02', '135','2014-03-08','i','7');
Insert into `Lekarstvo` (`ID lekarstvo`, `Naimenovanie`, `Data isgotovlenia`,`Cena`,`Data godnosti`,`Recept`,`Kol-vo`) values ('9', 'artekal', '2012-01-02', '193','2014-03-08','o','8');
Insert into `Lekarstvo` (`ID lekarstvo`, `Naimenovanie`, `Data isgotovlenia`,`Cena`,`Data godnosti`,`Recept`,`Kol-vo`) values ('10', 'Arkoksia', '2012-01-02', '699','2014-03-08','p','45');
Insert into `Lekarstvo` (`ID lekarstvo`, `Naimenovanie`, `Data isgotovlenia`,`Cena`,`Data godnosti`,`Recept`,`Kol-vo`) values ('11', 'Artrosan', '2012-01-02', '429','2014-03-08','a','66');
Запросы:
SELECT `Cena` FROM lekarstvo WHERE (`Cena` > 100);
Запрос на выборку 10 самых дорогих лекарственных средств.
select `Recept` from `Lekarstvo`;
Запросы на выборку товаров, проданных по рецептам.
SELECT `ID lekarstvo`, MAX(Cena) AS Cena
FROM Lekarstvo
GROUP BY `ID lekarstvo`;
Запрос, определяющий общее количество хранимого товара.
select sum(`Cena`) from `Lekarstvo`;
Запрос, определяющий прибыль за прошлый квартал, отдельно по рецептам, по льготной категории, общую прибыль.
SELECT `Data isgotovlenia`,`Naimenovanie`,`ID lekarstvo`,(`Cena`*1.4) FROM `Lekarstvo`;
Запрос для расчета суммы компенсации по проданным на льготных условиях лекарственным средствам (считать, что товары были проданы со скидкой 40%).
update `Lekarstvo` set `Cena`=`Cena`*1.2;
Обновление цен лекарственных средств - увеличение стоимости на 20%. Льготные категории товара должны остаться без изменения.
DELETE FROM `Lekarstvo` WHERE `Naimenovanie` LIKE '%in';
Удаление записей всех лекарственных средств, имеющих название, оканчивающееся на «ИН».
Create table `Recept` //Создаём таблицу рецепт
(`ID Recept` int(11) not null auto_increment,
`ID Vracha` int(11) not null,
`ID Pacienta` int(11) not null,
`Data` date not null,
Primary key(`ID Recept`));
Insert into `Recept` (`ID Recept`, `ID Vracha`, `ID Pacienta`, `Data`) values ('1', '1', '1', '2014-02-05');
Insert into `Recept` (`ID Recept`, `ID Vracha`, `ID Pacienta`, `Data`) values ('2', '1', '2', '2014-03-05');
Insert into `Recept` (`ID Recept`, `ID Vracha`, `ID Pacienta`, `Data`) values ('3', '1', '1', '2014-04-05');
Insert into `Recept` (`ID Recept`, `ID Vracha`, `ID Pacienta`, `Data`) values ('4', '1', '4', '2014-05-05');
Create table `Realisacia recepta` //Создаём таблицу реализация рецепта
(`ID Realisacii recepta` int(11) not null auto_increment,
`ID Lekarstvo` int(11) not null,
`ID Recept` int(11) not null,
`Data` date not null,
Primary key (`ID Realisacii recepta`));
Insert into `Realisacia recepta` (`ID Realisacii recepta`, `ID Lekarstvo`, `ID Recept`, `Data`) values ('1', '1', '1', '2012-05-05');
Insert into `Realisacia recepta` (`ID Realisacii recepta`, `ID Lekarstvo`, `ID Recept`, `Data`) values ('2', '1', '1', '2012-05-05');
Insert into `Realisacia recepta` (`ID Realisacii recepta`, `ID Lekarstvo`, `ID Recept`, `Data`) values ('3', '2', '2', '2012-06-05');
Insert into `Realisacia recepta` (`ID Realisacii recepta`, `ID Lekarstvo`, `ID Recept`, `Data`) values ('4', '3', '3', '2012-07-05');
SELECT `Data` FROM `Realisacia recepta` WHERE `Data` BETWEEN '2012-05-05' AND '2012-06-05';
Create table `Realisacia` //Создаём таблицу реализация
(`ID Realisacii` int(11) not null auto_increment,
`ID Lekarstvo` int(11) not null,
Primary key (`ID Realisacii`));
Create table `Pacienty` //Создаём таблицу пациенты
(`ID Pacienta` int(11) not null auto_increment,
`ID Lekarstvo` int(11) not null,
`ID Recept` int(11) not null,
`ID Naimenovanie` int(11) not null,
Primary key (`ID Pacienta`));
Insert into `Pacienty` (`ID Pacienta`, `ID Lekarstvo`, `ID Recept`,`ID Naimenovanie`) values ('1', 'Paracetomol', '2012-01-02', '16');
Список использованных источников
Гвоздева Т.В., Баллод Б.А. Проектирование информационных систем. Серия Высшее образование. М.: Феникс, 2009. – 512 с.
Документация MySQL. Сайт mysql.ru [Электронный ресурс] / 11.03.2014. – Режим доступа: http://www.mysql.ru/docs/
Методические рекомендации по оформлению курсовых и дипломных работ. ХПК, 2007г.
Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы. – СПб.: Питер, 2010.
Фуфаев Э.В., Фуфаев Д.Э.. «Базы данных», М.: Издательский центр «Академия», 2007.