Файл: Лабораторная работа 2 Создание запросов в субд ms access по дисциплине Базы данных Вариант 8 студент группы.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.04.2024

Просмотров: 24

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Пример 4.8

UPDATE Должности

SET Сумма_оклада=Сумма_оклада * 1.1;

На рисунке 4.13 представлено, как выглядела таблица «Должности» до выполнения запроса.





На рисунке 4.14 показана данная таблица после выполнения запроса.

4.6 Выборка записей с использованием SELECT

Используя команду SELECT, создадим запрос на выборку записей из двух (или более) таблиц, используя правила внешнего и внутреннего соединения, а также различные условия отбора и сортировки.

В примере 4.9 приведен запрос с использованием правила внутреннего соединения, выдающий сведения о сотрудниках, которые выходят в отпуск летом, с сортировкой в алфавитном порядке по ФИО сотрудника.

Пример 4.9

SELECT Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество, Сотрудники.Табельный_номер_сотрудника AS Табельный_номер, Отпуска.Дата_отпуска AS Дата_выхода_в_отпуск, Должности.Название_должности AS Должность

FROM Отпуска INNER JOIN (Должности INNER JOIN (Сотрудники INNER JOIN Занимаемая_должность ON Сотрудники.Код_сотрудника=Занимаемая_должность.Табельный_номер_специалиста) ON Должности.Код_должности=Занимаемая_должность.Должность) ON Отпуска.Табельный_номер_сотрудника=Занимаемая_должность.Табельный_номер_специалиста

WHERE Отпуска.Дата_отпуска Between #6/1/2019# And #8/31/2019#

ORDER BY Сотрудники.Фамилия ASC;


Результат выполнения запроса представлен на рисунке 4.15.
В примере 4.10 приведен запрос с использованием правила внешнего соединения, выдающий сведения об обращениях пациентов, при этом в результирующий набор данных будут вкючены также пациенты, чьи сведения об обращениях отсутствуют. Сведения отсортированы в порядке убывания № медицинских карточек, то есть наверху выборки находятся пациенты, зарегистрированные недавно.

Пример 4.10

SELECT Пациенты.№_медицинской_карточки, Пациенты.Фамилия, Пациенты.Имя, Пациенты.Отчество, Обращения.Дата_обращения, Услуги.Наименование AS Услуга

FROM Пациенты LEFT JOIN

((Услуги RIGHT JOIN Услуги_специалистов ON Услуги.Код_услуги_специалиста=Услуги_специалистов.Услуга) RIGHT JOIN Обращения ON Услуги_специалистов.Код_услуги_специалиста=Обращения.Услуга)


ON Пациенты.Код_пациента=Обращения.№_медицинской_карточки

ORDER BY Пациенты.№_медицинской_карточки DESC;


Результат выполнения запроса представлен на рисунке 4.16.

4.7 Перекрестный запрос с использованием TRANSFORM

Используя команду TRANSFORM, создадим перекрестный запрос.

В примере 4.11 приведен запрос, отображающий количество посещений типов врачей по датам.

Пример 4.11

TRANSFORM Count (Обращения.Услуга)

SELECT Обращения.Дата_обращения AS Дата

FROM Обращения INNER JOIN (((Должности INNER JOIN Занимаемая_должность ON Должности.Код_должности=Занимаемая_должность.Должность) INNER JOIN Сотрудники ON Занимаемая_должность.Табельный_номер_специалиста=Сотрудники.Код_сотрудника) INNER JOIN Услуги_специалистов ON Сотрудники.Код_сотрудника=Услуги_специалистов.Специалист) ON Обращения.Услуга=Услуги_специалистов.Код_услуги_специалиста

GROUP BY Обращения.Дата_обращения

PIVOT Должности.Название_должности;


Результат выполнения запроса представлен на рисунке 4.17.
4.8 Удаление таблицы и индекса с использованием DROP

Используя команду DROP, создадим запросы на удаление таблицы и индекса, созданных ранее в БД.

В примере 4.12 приведен запрос, который удаляет ранее созданную таблицу «Списанное_оборудование».

Пример 4.12

DROP TABLE Списанное_оборудование;


Изменения в схеме данных после удаления таблицы приведены на рисунке 4.18.
В примере 4.13 приведен запрос, который удаляет ранее созданный индекс ind_4 из таблицы «Оборудование».

Пример 4.13.

DROP INDEX ind_4 ON Оборудование;


Изменение списка индексов таблицы «Оборудование» показано на рисунке 4.19.