2) Таблица Group_medikaments:
- добавление новой записи
insert into Group_medikaments (Name)
values(:Name);
- удаление существующей записи
delete from Group_medikaments where ID = value;
- изменение существующей записи
update Groups_medikaments set Name = “value1”
where ID = value2;
3) Таблица Medikamenty:
- добавление новой записи
insert into Medikamenty (Name_med, Group_ID, Edinica)
values (:Name_med, :Group_ID, :Edinica);
- удаление существующей записи
delete from Medikamenty where ID = value;
- изменение существующей записи
update Medikamenty set Name_med= “value1”, Edinica =” value2”,
where Group_ID = value4;
4) Таблица Receptures:
- добавление новой записи
insert into Receptures ( Preparat_ID, Name_ID, Kol_vo )
values( :Preparat_ID, :Name_ID, :Kol_vo );
- удаление существующей записи
delete from Receptures where Preparat_ID = value, Name_ID = value ;
- изменение существующей записи
update Receptures set Kol_vo= “value1”
where Preparat_ID = value2, Name_ID = value3;
5) Таблица Preparat:
- добавление новой записи
insert into Preparat ( Group_ID, Name_preparat )
values ( :Group_ID, :Name_preparat);
- удаление существующей записи
delete from Preparat where ID = value;
- изменение существующей записи
update Preparat set Name_preparat =” value1”,
where Group_ID = value3;
5. ВЫБОР ИНФОРМАЦИИ ИЗ БАЗЫ ДАННЫХ
Для выбора информации из базы данных используется оператор SELECT.
1) Вывести информацию о медикаменте, присутствующем в наибольшем количестве рецептур.
Для выполнения задания необходимо использовать запрос SELECT с подзапросом. Подзапрос должен возвращать список количества медикаментов в каждой рецептуре, а основной запрос будет использовать подзапрос в предложении HAVING для отбора только той группы рецептур, в которой количество медикаментов больше или равно всем значений подзапроса.
Обратимся к таблицам: Medikamenty, Receptures. Условие отбора строк - M.ID=R.Name_ID. Отобранные строки сортируем по M.Name_med. В подзапросе группируем по R.Name_ID. Искомые данные находятся в соответствии с условием, указанным в предложении HAVING.
SELECT M.Name_med, count(M.Name_med)
FROM Medikamenty AS M, Receptures AS R
WHERE M.ID=R.Name_ID
GROUP BY M.Name_med
HAVING count(R.Name_ID)>=all(select count(R.Name_ID)
FROM Receptures AS R Group by R.Name_ID);
2) Вывести информацию о рецептуре, использующей наибольшее количество медикаментов.
Для выполнения задания необходимо использовать запрос SELECT с подзапросом. Подзапрос должен возвращать список препаратов, в которых используется наибольшее количество медикаментов, а основной запрос будет использовать подзапрос в предложении HAVING для отбора только тех медикаментов, количество которых больше или равно всем значений подзапроса.
Обратимся к таблицам: Medikamenty, Receptures, Preparat. Условие отбора строк – (M.ID=R.Name_ID and R.Preparat_ID=P.ID). Отобранные строки сортируем по R.Preparat_ID. В подзапросе группируем по
R.Preparat_ID. Искомые данные находятся в соответствии с условием, указанным в предложении HAVING.
SELECT R.Preparat_ID, count(R.Name_ID)
FROM Receptures AS R, Preparat AS P, Medikamenty AS M
WHERE (R.Preparat_ID=P.ID and R.Name_ID=M.ID)
GROUP BY R.Preparat_ID
HAVING count(R.Name_ID)>=all(SELECT count(R.Name_ID)
FROM Receptures R GROUP BY R.Preparat_ID);
3) Вывести список рецептур, в которых используется конкретный медикамент.
Условие отбора строк указано в предложении WHERE. Оператор DISTINCT исключает одинаковые строки.
SELECT DISTINCT R.Preparat_ID
FROM Receptures AS R, Medikamenty AS M, Preparat AS P
WHERE (P.ID=R.Preparat_ID and M.ID=R.Name_ID and
M.Name_med='Метамизол натрия');
ЗАКЛЮЧЕНИЕ
В ходе курсовой работы был проведен анализ предметной области в соответствие с заданием и определены используемые сущности и их основные свойства. После анализа связей между сущностями и определения типа этих связей была разработана схема данных для реляционной базы данных. Разработка схемы включала в себя определение необходимых ключей таблиц и ограничений целостности. Построенная схема данных была реализована при помощи SQL в виде операторов создания таблиц базы данных. Для работы с базой данных - добавления, изменения или удаления информации - приведены типовые SQL-операторы для выполнения необходимых действий. В соответствие с заданием составлены операторы SQL для выполнения запросов на извлечение данных, которые выбирают из базы данных и представляют пользователю указанную в задании информацию.
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
1 Озкарахан Э. Машины баз данных и управление базами данных. – 1989.
2 Джеймс Р. Грофф, Пол Н. Вайнберью. SQL: полное руководство. – 1998.
3 Диго С.М. Проектирование и использование баз данных. – 1995.