ОБД_лаба3. Создание структуры распределенной бд
Скачать 122.57 Kb.
|
Национальный аэрокосмический университет им. Н. Е. Жуковского Кафедра 503 Лабораторная работа №3 по курсу «Организация баз данных» Тема «Создание структуры распределенной БД» ХАІ.503.535.18В. 011501, 1505050 ПЗ
Харьков 2018 Постановка задачи: На основании таблиц физической модели данных, бизнес-правил предметной области и скриптов создания таблиц БД создать: 1. Создать скрипт создания тестовых данных в БД (оператор INSERT) (минимум по 5-7 записей в каждой таблице). 2. Создать оператор SELECT, который извлекает данные из одной таблицы и сортирует их по двум полям в разных направлениях. 3. Создать оператор SELECT с использованием условия на основе оператора LIKE. 4. Создать операторы SELECT с использованием условия на основе операторов BETWEEN, IN, IS NULL. 5. Создать оператор SELECT, который использует агрегатные функции и содержит группировку (GROUP BY и HAVING). 6. Создать скрипт изменения тестовых данных в БД (оператор UPDATE) (минимум к 3 различным таблицам). 7. Создать скрипт удаления тестовых данных в БД (оператор DELETE) (минимум в 3 различных таблицах). Для создания указанных скриптов и запросов использовать команды языка манипулирования данными DML. Наполнение_таблицы'>Скрипт наполнения БД Наполнение таблицы hospital INSERT INTO `lab1`.`hospital` (`idHospital`, `nameHospital`, `address`) VALUES ('1', 'больница1', 'ул.Пушкина'); INSERT INTO `lab1`.`hospital` (`idHospital`, `nameHospital`, `address`) VALUES ('2', 'больница2', 'ул.Дарвина'); INSERT INTO `lab1`.`hospital` (`idHospital`, `nameHospital`, `address`) VALUES ('3', 'больница3', 'ул.Ленина'); INSERT INTO `lab1`.`hospital` (`idHospital`, `nameHospital`, `address`) VALUES ('4', 'больница4', 'ул.Колотушкина'); INSERT INTO `lab1`.`hospital` (`idHospital`, `nameHospital`, `address`) VALUES ('5', 'больница5', 'ул.Сабеева'); Наполнение таблицы hospital building INSERT INTO `lab1`.`hospital building` (`idKorpus`, `countKorpus`, `idHospital`) VALUES ('1', '5', '1'); INSERT INTO `lab1`.`hospital building` (`idKorpus`, `countKorpus`, `idHospital`) VALUES ('2', '2', '3'); INSERT INTO `lab1`.`hospital building` (`idKorpus`, `countKorpus`, `idHospital`) VALUES ('3', '15', '2'); INSERT INTO `lab1`.`hospital building` (`idKorpus`, `countKorpus`, `idHospital`) VALUES ('4', '4', '5'); INSERT INTO `lab1`.`hospital building` (`idKorpus`, `countKorpus`, `idHospital`) VALUES ('5', '1', '4'); Наполнениетаблицы diseas INSERT INTO `lab1`.`diseases` (`idDiseases`, `nameOfgroupDiseas`) VALUES ('1', 'Неврологические'); INSERT INTO `lab1`.`diseases` (`idDiseases`, `nameOfgroupDiseas`) VALUES ('2', 'Венерологические'); INSERT INTO `lab1`.`diseases` (`idDiseases`, `nameOfgroupDiseas`) VALUES ('3', 'Генетеческие'); INSERT INTO `lab1`.`diseases` (`idDiseases`, `nameOfgroupDiseas`) VALUES ('4', 'Онкологические'); INSERT INTO `lab1`.`diseases` (`idDiseases`, `nameOfgroupDiseas`) VALUES ('5', 'Гастроэнтрологические'); Наполнениетаблицы hospital department INSERT INTO `lab1`.`hospital department` (`idOtdelenie`, `idBuild`, `idDiseas`) VALUES ('1', '2', '1'); INSERT INTO `lab1`.`hospital department` (`idOtdelenie`, `idBuild`, `idDiseas`) VALUES ('2', '1', '2'); INSERT INTO `lab1`.`hospital department` (`idOtdelenie`, `idBuild`, `idDiseas`) VALUES ('3', '3', '3'); INSERT INTO `lab1`.`hospital department` (`idOtdelenie`, `idBuild`, `idDiseas`) VALUES ('4', '5', '4'); INSERT INTO `lab1`.`hospital department` (`idOtdelenie`, `idBuild`, `idDiseas`) VALUES ('5', '4', '5'); Наполнениетаблицы room INSERT INTO `lab1`.`room` (`idRoom`, `numbed`) VALUES ('1', '10'); INSERT INTO `lab1`.`room` (`idRoom`, `numbed`) VALUES ('2', '15'); INSERT INTO `lab1`.`room` (`idRoom`, `numbed`) VALUES ('3', '5'); INSERT INTO `lab1`.`room` (`idRoom`, `numbed`) VALUES ('4', '20'); INSERT INTO `lab1`.`room` (`idRoom`, `numbed`) VALUES ('5', '25'); Наполнение таблицы departmentsroom INSERT INTO `lab1`.`departmentsroom` (`idDepartmentsRoom`, `idDepartment`, `idRoom`) VALUES ('1', '1', '3'); INSERT INTO `lab1`.`departmentsroom` (`idDepartmentsRoom`, `idDepartment`, `idRoom`) VALUES ('2', '3', '1'); INSERT INTO `lab1`.`departmentsroom` (`idDepartmentsRoom`, `idDepartment`, `idRoom`) VALUES ('3', '2', '2'); INSERT INTO `lab1`.`departmentsroom` (`idDepartmentsRoom`, `idDepartment`, `idRoom`) VALUES ('4', '4', '5'); INSERT INTO `lab1`.`departmentsroom` (`idDepartmentsRoom`, `idDepartment`, `idRoom`) VALUES ('5', '5', '4'); Наполнениетаблицы laboratories INSERT INTO `lab1`.`laboratories` (`idLaboratories`, `nameProfile`, `idHospitals`) VALUES ('1', 'Химическая', '1'); INSERT INTO `lab1`.`laboratories` (`idLaboratories`, `nameProfile`, `idHospitals`) VALUES ('2', 'Биоимическая', '2'); INSERT INTO `lab1`.`laboratories` (`idLaboratories`, `nameProfile`, `idHospitals`) VALUES ('3', 'Радиохимическая', '3'); INSERT INTO `lab1`.`laboratories` (`idLaboratories`, `nameProfile`, `idHospitals`) VALUES ('4', 'Технологическая', '4'); INSERT INTO `lab1`.`laboratories` (`idLaboratories`, `nameProfile`, `idHospitals`) VALUES ('5', 'Фармакологическая', '5'); Наполнение таблицы patients INSERT INTO `lab1`.`patients` (`idPatients`, `NamePatient`, `SurnamePatient`, `idHospit`) VALUES ('1', 'Серега', 'Левушевский', '1'); INSERT INTO `lab1`.`patients` (`idPatients`, `NamePatient`, `SurnamePatient`, `idHospit`) VALUES ('2', 'Рома', 'Коваленко', '3'); INSERT INTO `lab1`.`patients` (`idPatients`, `NamePatient`, `SurnamePatient`, `idHospit`) VALUES ('3', 'Ярик', 'Абарников', '1'); INSERT INTO `lab1`.`patients` (`idPatients`, `NamePatient`, `SurnamePatient`, `idHospit`) VALUES ('4', 'Влад', 'Волков', '2'); INSERT INTO `lab1`.`patients` (`idPatients`, `NamePatient`, `SurnamePatient`, `idHospit`) VALUES ('5', 'Даня', 'Лехман', '5'); Оператор SELECT, который извлекает данные из одной таблицы и сортирует их по двум полям в разных направлениях. SELECT * FROM lab1.patients order by NamePatient SELECT * FROM lab1.patients order by NamePatient desc Создать оператор SELECT с использованием условия на основе оператора LIKE. SELECT * FROM lab1.patients where SurnamePatient like '%ков%' Создать операторы SELECT с использованием условия на основе операторов BETWEEN, IN, IS NULL. SELECT * FROM lab1.patients where idPatients between 2 and 4 SELECT * FROM lab1.patients where idPatients in(1,2,5) SELECT * FROM lab1.patients where idPatients is null Создать оператор SELECT, который использует агрегатные функции и содержит группировку (GROUP BY и HAVING). SELECT hospital.nameHospital,COUNT(*) AS name_count FROM patients left join hospital on hospital.idHospital = idHospit WHERE patients.idHospit = idHospit GROUP BY idHospit having count(name_count)>1 Создать скрипт изменения тестовых данных в БД (оператор UPDATE) (минимум к 3 различным таблицам). UPDATE `lab1`.`hospital` SET `nameHospital`='больница' WHERE `idHospital`='1'; UPDATE `lab1`.`hospital` SET `nameHospital`='больница1' WHERE `idHospital`='2'; UPDATE `lab1`.`hospital` SET `nameHospital`='больница2' WHERE `idHospital`='3'; UPDATE `lab1`.`hospital` SET `nameHospital`='больница3' WHERE `idHospital`='4'; UPDATE `lab1`.`hospital` SET `nameHospital`='больница4' WHERE `idHospital`='5'; UPDATE `lab1`.`patients` SET `NamePatient`='Артем ', `SurnamePatient`='Загуменный' WHERE `idPatients`='5'; UPDATE `lab1`.`room` SET `numbed`='26' WHERE `idRoom`='3'; Создать скрипт удаления тестовых данных в БД (оператор DELETE) (минимум в 3 различных таблицах). DELETE FROM diseas; DELETE FROM room; DELETE FROM patients; |