- •Практическая работа n 2
- •Создание запросов
- •1). Отобразить фамилии, имена и отчества преподавателей, их должности и стаж.
- •2). Отобразите список преподавателей, ведущих дисциплину Информатика.
- •3). Запрос с параметром. Отобразите номер группы, название предмета, который ведет тот преподаватель, которого пользователь вводит с помощью клавиатуры.
- •4). Запрос с параметром. Отобразите список преподавателей, название предмета и количество часов по данному предмету, по группе, которую введет пользователь с помощью клавиатуры.
- •1). Отобразите список преподавателей, название предмета и количество часов. Условие отбора: отобразите фамилии по алфавиту, а имя и отчество как инициалы.
- •2). Отобразите список преподавателей, имя у которых начинается на букву «н».
2). Отобразите список преподавателей, ведущих дисциплину Информатика.
- перейти на вкладку Создание → Запросы → Конструктор запросов;
- Добавьте все три таблицы в поле запроса;
- Добавьте в поле отбора Фамилия, Имя, Отчество преподавателя из таблицы Преподаватели, Название из таблицы Предметы;
- в условии отбора под Названием укажите – «Информатика»:
- Затем нажмите на вкладке Работа с запросами → Результаты → Выполнить:
- Запрос вывел нам 2 преподавателей, ровно столько раз, в скольких группах они ведут.
- Чтобы данные не дублировались, необходимо перейти в режим SQL
- На экране отобразился наш запрос на языке программирования SQL.
-
SELECT Преподаватели.Фамилия, Преподаватели.Имя, Преподаватели.Отчество, Предметы.Название
FROM Преподаватели INNER JOIN (Предметы INNER JOIN Нагрузка ON Предметы.[Код предмета] = Нагрузка.[Код предмета]) ON Преподаватели.[Код преподавателя] = Нагрузка.[Код преподавателя]
WHERE (((Предметы.Название)="Информатика"));
-Чтобы исправить дублирование необходимо использовать ключевое слово DISTINCT:
-
SELECT DISTINCT Преподаватели.Фамилия, Преподаватели.Имя, Преподаватели.Отчество, Предметы.Название
FROM Преподаватели INNER JOIN (Предметы INNER JOIN Нагрузка ON Предметы.[Код предмета] = Нагрузка.[Код предмета]) ON Преподаватели.[Код преподавателя] = Нагрузка.[Код преподавателя]
WHERE (((Предметы.Название)="Информатика"));
- Затем нажмите на вкладке Работа с запросами → Результаты → Выполнить:
- Сохраните запрос под именем – Запрос 6.
3). Запрос с параметром. Отобразите номер группы, название предмета, который ведет тот преподаватель, которого пользователь вводит с помощью клавиатуры.
- перейти на вкладку Создание → Запросы → Конструктор запросов;
- Добавьте все три таблицы в поле запроса; поле Фамилия на экран не будет выводиться, поэтому галочку убираем:
- В условие отбора под Фамилией вписываем: [Введите фамилию преподавателя:] (текст вводите обязательно в квадратных скобках).
- Затем нажмите на вкладке Работа с запросами → Результаты → Выполнить:
- в появившемся окне введите фамилию любого преподавателя (Например, Перкусов):
- ОК;
- Сохраните запрос под именем – Запрос 7.
4). Запрос с параметром. Отобразите список преподавателей, название предмета и количество часов по данному предмету, по группе, которую введет пользователь с помощью клавиатуры.
- перейти на вкладку Создание → Запросы → Конструктор запросов;
- Добавьте все три таблицы в поле запроса; поле Номер группы на экран не будет выводиться, поэтому галочку убираем:
- В условие отбора под Фамилией вписываем: [Введите номер группы:] (текст вводите обязательно в квадратных скобках).
- Затем нажмите на вкладке Работа с запросами → Результаты → Выполнить:
- в появившемся окне введите номер любой группы (Например, 9 ОТ):
- ОК.
- Сохраните запрос под именем – Запрос 8.
Шаг 3. Редактирование запроса в SQL.
1). Отобразите список преподавателей, название предмета и количество часов. Условие отбора: отобразите фамилии по алфавиту, а имя и отчество как инициалы.
- для начала создадим запрос без условия, для этого можете использовать любой из предложенных выше способов создания запросов (режим Мастера или Конструктора);
- Для отбора возьмем поля Название и Количество часов из таблицы Предметы;
- Сохраните запрос под именем – Запрос 9;
- Затем перейдите в режим SQL:
-
SELECT Предметы.[Название], Предметы.[Количество часов]
FROM Предметы;
- чтобы выполнить условие необходимо:
во-первых, изменить первую строку текста:
-
SELECT Предметы.[Название], Предметы.[Количество часов], [Фамилия] & " " & Left([Имя],1) & "." & Left([Отчество],1) & "." AS Преподаватели
FROM Преподаватели INNER JOIN (Предметы INNER JOIN Нагрузка ON Предметы.[Код предмета] = Нагрузка.[Код предмета]) ON Преподаватели.[Код преподавателя] = Нагрузка.[Код преподавателя];
- Затем нажмите на вкладке Работа с запросами → Результаты → Выполнить:
во-вторых, добавить еще один оператор ORDER BY и скопировать новую введенную строку:
-
SELECT Предметы.[Название], Предметы.[Количество часов], [Фамилия] & " " & Left([Имя],1) & "." & Left([Отчество],1) & "." AS Преподаватели
FROM Преподаватели INNER JOIN (Предметы INNER JOIN Нагрузка ON Предметы.[Код предмета] = Нагрузка.[Код предмета]) ON Преподаватели.[Код преподавателя] = Нагрузка.[Код преподавателя]
ORDER BY [Фамилия] & " " & Left([Имя],1) & "." & Left([Отчество],1) & ".";
- Затем нажмите на вкладке Работа с запросами → Результаты → Выполнить:
Произвести сортировку можно и другим способом:
- после того, как вы сократили имя и отчество до инициалов, перейдите в режим Конструктора и в строке Сортировка выберите «по возрастанию»;
- В итоге получаем аналогичный результат.
