Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_роб_№7_SQL.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
387 Кб
Скачать
☆

Завдання. Частина 1.

    1. Ознайомитися з прикладами керуючих операторів.

7.3 Запити мовою Jet sql на селекцію (вибірку та об’єднання) даних

Лабораторна робота №7. Частина 2. Завдання

  1. Обрахувати аудиторне навантаження за видами занять викладачів кафедри №5 у 2-му триместрі.

  2. Підрахувати кількість дисциплін циклу „3” у 4-му триместрі.

  3. Яка кафедра має найбільший обсяг дисциплін у навчальному плані?

  4. Дисципліни 5-го триместру з найменшим обсягом аудиторних годин (лекційні+групові+лабораторні) у триместрі.

  5. Середнє значення обсягів дисциплін по циклах.

7.5 Структуровані запити та підзапити

7.5.1 Підзапити з оператором порівняння

Розглянемо, наприклад, задачу складання списку всіх викладачів, що мають мінімальну норму навантаження (ми не знаємо коду чи назви посади, що має мінімальну норму). За допомогою з’єднань цю задачу можна було б виконати в два прийоми.

1. Знайти мінімальну норму навантаження.

SELECT MIN(NormPost)

FROM POSADA;

Min-NormPost

600

2. Одержати прізвища викладачів, які мають таку норму.

SELECT VYKLADACH.PrizvVykl, POSADA.PostVykl, POSADA.NormPost

FROM VYKLADACH, POSADA

WHERE price = 600;

Якщо зробити це з допомогою підзапиту, то нам буде потрібно тільки один оператор:

SELECT VYKLADACH.PrizvVykl, POSADA.PostVykl, POSADA.NormPost

FROM VYKLADACH INNER JOIN POSADA ON VYKLADACH.KodPost = POSADA.KodPost

WHERE (((POSADA.NormPost)=(select MIN(NormPost) from POSADA)));

7.5.2 Підзапити з предикатом in (Not In)

Запит – знайти усіх викладачів, які мають усі ті посади, що є на кафедрі №2 .

SELECT VYKLADACH.PrizvVykl, VYKLADACH.NomKaf, VYKLADACH.KodPost

FROM VYKLADACH

WHERE ((( VYKLADACH.KodPost) In (select KodPost from VYKLADACH where NomKaf=2)));

PrizvVykl

NomKaf

KodPost

Бандур М.М.

6

02

Сірко В.В.

7

02

Опришко Ю.Й.

2

02

Батура О.Й.

6

02

Балагура А.М.

2

04

Черно Ф.М.

2

04

А якщо треба, щоб в результатній таблиці не було викладачів кафедри №2, то

SELECT VYKLADACH.PrizvVykl, VYKLADACH.NomKaf, VYKLADACH.KodPost

FROM VYKLADACH

WHERE ((( VYKLADACH.NomKaf)<>2) AND (( VYKLADACH.KodPost) In (select KodPost from VYKLADACH where NomKaf=2)));

PrizvVykl

NomKaf

KodPost

Бандур М.М.

6

02

Сірко В.В.

7

02

Батура О.Й.

6

02

Запит – знайти усіх викладачів, які мають посади, яких немає на кафедрі №2 .

SELECT VYKLADACH.PrizvVykl, VYKLADACH.NomKaf, VYKLADACH.KodPost

FROM VYKLADACH

WHERE ((( VYKLADACH.KodPost) Not In (select KodPost from VYKLADACH where NomKaf=2)));

PrizvVykl

NomKaf

KodPost

Середа І.С.

6

01

Мунтян Р.Д.

7

01

Турчак А.Д.

12

03

Махно Н.Є.

7

01

Собчак А.О.

12

01