Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОБД / лабки / обд11

.doc
Скачиваний:
0
Добавлен:
27.01.2024
Размер:
665.09 Кб
Скачать

Лабораторна робота 11

Тема: Робота з таблицями. Вибірка з декількох таблиць з обмеженнями за допомогою внутрішнього об'єднання.

Мета: Закріпити навички розроблення запитів до БД та вибірки з декількох таблиць з обмеженнями в phpMyAdmin.

Форма звіту: електронний звіт.

Бойко Евген 310 І

БЛОК 1. Вибірка без дублювання даних

    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

    1. Побудувати запит для отримання унікальних даних про прізвища викладачів та їх дисципліну, при умові що вони викладають у 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%'

    1. Побудувати запит для отримання унікальних даних про прізвища викладачів та їх дисципліну, при умові що вони викладають «ЛЕКЦІЇ».

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. Ознайомлення з новою базою даних

  1. Перенести базу даних college_2 (дамп на сервері та в гугл класі) в phpMyAdmin

  1. Зробити скріншот концептуальної моделі бази даних college_2.

  1. Ознайомитися з даними таблиць (зробити скріншоти вмісту кожної таблиці).

client

documents

education

employee

employee_task

position

project

project_task

scheldule

structure

tasks

14

Соседние файлы в папке лабки