Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Rukovodstvo_k_laboratornym_rabotam_po_kursu_Bazy_Dannykh.doc
Скачиваний:
3
Добавлен:
09.07.2021
Размер:
320 Кб
Скачать

Лабораторная работа №6 Создание сложных запросов с использованием подзапросов и агрегированных функций

Целью работы является формирование навыков создания запросов к базе данных. Следует изучить команду SELECT, агрегированные функции и использование подзапросов. При выборке данных могут быть использованы четыре связанные таблицы, находящиеся в схеме MAI:

таблица отделов OTD с первичным ключом nom_otd и полями:

nom_otd – номер отдела;

name_nach – фамилия начальника;

etaj – этаж, на котором находится отдел;

nom_tel – номер телефона отдела.

таблица сотрудников SOTR с первичным ключом nom_sotr и внешним ключом nom_otd и полями:

nom_sotr – номер сотрудника;

nom_otd – номер отдела, где работает сотрудник;

name1 – фамилия сотрудника;

name2 – имя сотрудника;

name3 – отчество сотрудника;

zarpl – зарплата сотрудника;

adres – адрес сотрудника;

city – город сотрудника.

Таблица детей сотрудников DETI с составным первичным ключом nom_sort,name_child и внешним ключом nom_sotr:

nom_sotr – номер сотрудника;

name_child – имя ребенка;

voz- возраст ребенка;

school – номер школы, где учится ребенок. Это поле может иметь пустое значение, если ребенок не учится в школе.

Таблица школ SHOOL с первичным ключом nomer и полями:

nomer – номер школы;

name_dir – фамилия директора школы;

phone - телефон школы.

Порядок выполнения

Выполнить запрос к базе данных в соответствии с вариантом, используя подзапрос и агрегированные (групповые) функции. Определить число строк при помощи функции COUNT(*), выдаваемых запросом. Составить отчет, в котором должна быть представлены запросы, определение количества строк и ответы на контрольные вопросы.

Связь таблиц показана на рис. 4

Рис. 4

Варианты работы

Вариант 1

Выбрать сотрудников, у которых в школе с номером 10 учатся более двух детей.

Вариант 2

Выбрать сотрудников имеющих 2 и более детей, учащихся в школе, где директор – Иванов В.П.

Вариант 3

Выбрать школы, в которых учатся дети сотрудников, работающих в отделе N 119.

Вариант 4

Выбрать сотрудников, имеющих более 3 детей, один из которых учится в школе.

Вариант 5

Выбрать отделы, в которых более 3 сотрудников не имеют детей.

Вариант 6

Выбрать отделы, сотрудники которых имеют более одного ребенка с возрастом 20 лет.

Вариант 7

Выбрать отделы, в которых сотрудники имеют детей в возрасте менее 7 лет учатся в школе.

Вариант 8

Выбрать сотрудников, имеющих только двух детей, один из которых учится в школе, а другой - нет.

Вариант 9

Выбрать детей, родители которых не имеют однофамильцев среди сотрудников.

Вариант 10

Выбрать сотрудников, которые получают зарплату выше средней зарплаты его отдела.

Вариант 11

Выбрать сотрудников, дети которых учатся в разных школах.

Вариант 12

Выбрать сотрудников, имеющих детей одного возраста.

Контрольные вопросы

  1. В какой части опции WHERE оператора SELECT должен находиться подзапрос?

  2. В чем преимущество подзапросов?

  3. Какая реляционная операция выполняется при многотабличной выборке?

  4. Какая логическая операция используется, если подзапрос возвращает несколько строк?

  5. С какими функциями используется опция группировки?

Соседние файлы в предмете Базы данных