Лабораторна робота 11
Тема: Робота з таблицями. Вибірка з декількох таблиць з обмеженнями за допомогою внутрішнього об'єднання.
Мета: Закріпити навички розроблення запитів до БД та вибірки з декількох таблиць з обмеженнями в phpMyAdmin.
Форма звіту: електронний звіт.
Бойко Евген 310 І
БЛОК 1. Вибірка без дублювання даних
Побудувати запит для отримання унікальних даних про прізвища викладачів та спеціальностей на яких вони працюють, при умові що вони викладають хоча б одну пару у вівторок.
SELECT DISTINCT specialities.speciality_name, lecturers.lecturer_name FROM `specialities`, lecturers, scheldule WHERE specialities.id_speciality=lecturers.id_speciality AND lecturers.id_lecturer=scheldule.id_lecturer AND scheldule.day_name='Вівторок' AND scheldule.id_period IS NOT null
Побудувати запит для отримання унікальних даних про прізвища викладачів та їх дисципліну, при умові що вони викладають у 3 курсу.
SELECT DISTINCT subjects.subject_name, lecturers.lecturer_name from groups, lecturers, subjects, scheldule WHERE subjects.id_subject = scheldule.id_subject and groups.id_group = scheldule.id_group and lecturers.id_lecturer = scheldule.id_lecturer AND groups.group_name LIKE '3%'
Побудувати запит для отримання унікальних даних про прізвища викладачів та їх дисципліну, при умові що вони викладають «ЛЕКЦІЇ».
SELECT DISTINCT subjects.subject_name, lecturers.lecturer_name from types_of_lessons, lecturers, subjects, scheldule WHERE types_of_lessons.id_type=scheldule.id_type AND lecturers.id_lecturer=scheldule.id_lecturer AND subjects.id_subject=scheldule.id_subject AND types_of_lessons.id_type=1
БЛОК 2. Упорядкування результатів запиту
2.1. Побудувати запит для отримання даних про назви груп та назви спеціальностей, відсортувавши за назвою групи
SELECT groups.group_name, specialities.speciality_name FROM groups, specialities WHERE groups.id_speciality=specialities.id_speciality ORDER BY groups.group_name
2.2. Побудувати запит для отримання даних про викладачів і номер пари, на якій вони задіяні у четверг, відсортувавши по номеру пари (від 1 до 6)
SELECT lecturers.id_lecturer, lecturers.lecturer_name, lecturers.id_speciality, scheldule.id_period FROM lecturers, scheldule where scheldule.day_name = 'Четвер' and lecturers.id_lecturer = scheldule.id_lecturer ORDER by scheldule.id_period ASC
2.3 Побудувати запит для отримання даних про аудиторію та назву корпусу, в якому знаходиться аудиторія, відсортувавши по номеру аудиторії (від максимальної до мінімальної)
SELECT rooms.room_number, rooms.id_room, buildings.building_name FROM rooms, buildings where rooms.id_building=buildings.id_building ORDER BY rooms.room_number DESC
БЛОК 3. Обробка NULL-значень
3.1 Побудувати запит для отримання даних про назву групи, інформація про кількість студентів яких відсутня в базі даних коледжу. Якщо такі дані відсутні в таблиці, то відредагуйте або додайте нові записи.
SELECT group_name from groups where group_amount is null
3.2 Побудувати запит для отримання даних про назву групи, в яких інформація про кількість студентів обов’язково присутня в базі даних коледжу.
SELECT group_name from groups where group_amount is not null
БЛОК 4. Обробка NULL-значень
Виконати по три запити на унікальність, сортування даних та на обробку NULL-значень із декількох таблиць за допомогою внутрішнього об'єднання до індивідуальної бази даних.
Результати подати у вигляді опису завдання, синтаксису запиту та скрін-шоту результату виконання запиту з екрану.
1
SELECT DISTINCT kyrtki.marka AS куртки, palto.marka AS пальто FROM kyrtki, palto, magodeg WHERE kyrtki.id_kyrtki=magodeg.id_kyrtki AND palto.id_palto=magodeg.id_palto
SELECT DISTINCT director.*, kyrtki.marka, kyrtki.cina FROM `director`, magodeg, kyrtki WHERE kyrtki.id_kyrtki=magodeg.id_kyrtki AND director.id_director=magodeg.id_dir AND director.prizvishe LIKE ('S%')
SELECT DISTINCT palto.nazva_kollekcii,palto.cina, shybi.nazva_kolekcii, shybi.cina FROM palto, shybi, magodeg WHERE magodeg.id_shybi=shybi.id_shybi AND palto.id_palto=magodeg.id_palto AND shybi.cina>5000 AND palto.cina>5000
2
SELECT kyrtki.marka AS куртки, palto.marka AS пальто FROM kyrtki, palto, magodeg WHERE kyrtki.id_kyrtki=magodeg.id_kyrtki AND palto.id_palto=magodeg.id_palto ORDER BY palto.marka, kyrtki.marka DESC
SELECT DISTINCT director.*, kyrtki.marka, kyrtki.cina FROM `director`, magodeg, kyrtki WHERE kyrtki.id_kyrtki=magodeg.id_kyrtki AND director.id_director=magodeg.id_dir ORDER BY director.imia ASC
SELECT DISTINCT palto.nazva_kollekcii,palto.cina, shybi.nazva_kolekcii, shybi.cina FROM palto, shybi, magodeg WHERE magodeg.id_shybi=shybi.id_shybi AND palto.id_palto=magodeg.id_palto AND shybi.cina>5000 ORDER BY palto.nazva_kollekcii DESC
3
SELECT kyrtki.marka AS куртки, palto.marka AS пальто FROM kyrtki, palto, magodeg WHERE kyrtki.id_kyrtki=magodeg.id_kyrtki AND palto.id_palto=magodeg.id_palto AND palto.cina IS null
SELECT DISTINCT director.*, kyrtki.marka, kyrtki.cina FROM `director`, magodeg, kyrtki WHERE kyrtki.id_kyrtki=magodeg.id_kyrtki AND director.id_director=magodeg.id_dir AND kyrtki.kolir IS NOT null
SELECT palto.nazva_kollekcii,palto.cina, shybi.nazva_kolekcii, shybi.cina FROM palto, shybi, magodeg WHERE magodeg.id_shybi=shybi.id_shybi AND palto.id_palto=magodeg.id_palto AND shybi.cina>5000 AND palto.kolir is null
БЛОК 5. Ознайомлення з новою базою даних
Перенести базу даних college_2 (дамп на сервері та в гугл класі) в phpMyAdmin
Зробити скріншот концептуальної моделі бази даних college_2.
Ознайомитися з даними таблиць (зробити скріншоти вмісту кожної таблиці).
client
documents
education
employee
employee_task
position
project
project_task
scheldule
structure
tasks