Главная страница
Навигация по странице:

  • Лабораторная работа № 2 «Создание запросов в СУБД MS Access»по дисциплине: «Базы данных» Вариант № 8

  • Мурзин Евгений Сергеевич Томск 2023 Оглавление

  • 1 Цель работы Создать запросы в среде MS Access. 2 Задание

  • 3 Создание запросов с помощью построителя запросов 3.1 Запрос на выборку

  • 3.2 Запрос на выборку с параметрами с приглашением на ввод условий отбора

  • 3.3 Запрос на выборку с параметрами с явным указанием условия отбора

  • 3.5 Запрос на удаление данных

  • 4 Создание SQL-запросов 4.1 Создание новой таблицы с использованием CREATE TABLE

  • 4.2 Создание новой таблицы с использованием CREATE TABLE с внешним ключом

  • 4.4 Добавление записей с использованием INSERT INTO

  • 4.5 Обновление данных с использованием UPDATE

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

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

  • 4.8 Удаление таблицы и индекса с использованием DROP

  • три Лабораторные работы по дисциплине Базы данных. Лабораторная работа № 2 по дисциплине- «Базы данных». Лабораторная работа 2 Создание запросов в субд ms access по дисциплине Базы данных Вариант 8 студент группы


    Скачать 3.51 Mb.
    НазваниеЛабораторная работа 2 Создание запросов в субд ms access по дисциплине Базы данных Вариант 8 студент группы
    Анкортри Лабораторные работы по дисциплине Базы данных
    Дата04.02.2023
    Размер3.51 Mb.
    Формат файлаdocx
    Имя файлаЛабораторная работа № 2 по дисциплине- «Базы данных» .docx
    ТипЛабораторная работа
    #919418

    Министерство науки и высшего образования Российской Федерации

    Федеральное государственное бюджетное образовательное

    учреждение высшего образования

    ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ

    УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

    Кафедра компьютерных систем в управлении

    и проектировании (КСУП)


    Лабораторная работа № 2

    «Создание запросов в СУБД MS Access»

    по дисциплине: «Базы данных»
    Вариант № 8

    Выполнил: студент группы з-511П8-5

    Кузнецов Сергей Сергеевич

    Проверил:

    преподаватель

    Мурзин Евгений Сергеевич

    Томск 2023







    Оглавление

    1 Цель работы 3

    2 Задание 4

    3 Создание запросов с помощью построителя запросов 5

    3.1 Запрос на выборку 5

    3.2 Запрос на выборку с параметрами с приглашением на ввод условий отбора 5

    3.3 Запрос на выборку с параметрами с явным указанием условия отбора 6

    3.4 Запрос на обновление данных 6

    3.5 Запрос на удаление данных 7

    4 Создание SQL-запросов 9

    4.1 Создание новой таблицы с использованием CREATE TABLE 9

    4.2 Создание новой таблицы с использованием CREATE TABLE с внешним ключом 10

    4.3 Создание нового индекса с использованием CREATE INDEX 11

    4.4 Добавление записей с использованием INSERT INTO 13

    4.5 Обновление данных с использованием UPDATE 15

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

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

    4.8 Удаление таблицы и индекса с использованием DROP 19



    1 Цель работы

    Создать запросы в среде MS Access.

    2 Задание

    1. Создать с помощью построителя запросов:

    • запрос на выборку;

    • запрос на выборку с параметрами;

    • запрос на обновление данных;

    • запрос на удаление записей;

    1. Реализовать на языке SQL без помощи построителя запросов:

    • используя инструкцию CREATE TABLE, запрос на создание новой таблицы, содержащей пять полей различных типов данных, определив в запросе первичный ключ и проиндексировав соответствующие поля, используя предложение CONSTRAINT, а затем на создание еще одной таблицы, содержащей внешний ключ по отношению к первичному ключу предыдущей таблицы;

    • используя команду CREATE INDEX, запрос на создание нового индекса, используя различные условия назначения индексов (IGNORE NULL, DISALLOW NULL, PRIMARY), а также типы сортировки;

    • используя команду INSERT INTO, запросы на добавление группы записей (из дополнительной таблицы) и одной записи в существующую таблицу;

    • используя команду UPDATE, запрос на обновление данных в созданных ранее таблицах;

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

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

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

    Предметная область в соответствии с вариантом №8: поликлиника.

    3 Создание запросов с помощью построителя запросов
    3.1 Запрос на выборку

    Создадим в СУБД MS Access с помощью построителя запросов запрос на выборку.

    Запрос «Поставленные диагнозы» будет отображать ФИО пациента, дату приема и название диагноза, который был поставлен на этом приеме, а также статус диагноза.


    Создание запроса в конструкторе представлено на рисунке 3.1.


    3.2 Запрос на выборку с параметрами с приглашением на ввод условий отбора

    Создадим в СУБД MS Access с помощью построителя запросов запрос на выборку с параметрами с приглашением на ввод условий отбора.

    Запрос «Сотрудники определенной должности» будет отображать ФИО и табельные номера сотрудников определенной должности, которую нужно ввести при запуске запроса в поле выводящейся на экран подсказки «Введите название должности:».

    Создание запроса в конструкторе представлено на рисунке 3.2.



    3.3 Запрос на выборку с параметрами с явным указанием условия отбора

    Создадим в СУБД MS Access с помощью построителя запросов запрос на выборку с параметрами с явным указанием условия отбора.

    Запрос «Сотрудники терапевтического кабинета» будет отображать ФИО всех сотрудников отдела «Терапевтический кабинет», их табельные номера и должности.


    Создание запроса в конструкторе представлено на рисунке 3.3.


    3.4 Запрос на обновление данных

    Создадим в СУБД MS Access с помощью построителя запросов запрос на обновление данных.

    Запрос «Обновление стажа» будет прибавлять к стажу всех неуволенных сотрудников 1 год.

    Сначала создадим запрос на выборку с параметрами с явным указанием условия отбора «Сотрудники, которые не уволены». Он будет отображать ФИО и стаж сотрудников, которые не были уволены со своих должностей.


    Создание запроса в конструкторе представлено на рисунке 3.4.

    Теперь с помощью данного запроса создадим запрос «Обновление стажа».


    Создание запроса в конструкторе представлено на рисунке 3.5.
    3.5 Запрос на удаление данных

    Создадим в СУБД MS Access с помощью построителя запросов запрос на удаление данных.

    Пусть какой-либо пациент был откреплен от поликлиники по какой-либо причине, и требуется удалить информацию о нем из базы данных. Запрос «Открепление пациента» будет удалять записи из таблицы «Пациенты» по номеру медицинской карточки, который нужно ввести при запуске запроса в поле выводящейся на экран подсказки «Введите № медицинской карточки:»., а также записи с данным пациентом из подчиненных таблиц «Обращения», «Прием», «Диагнозы пациентов» и «Анализы».


    Создание запроса в конструкторе представлено на рисунке 3.6.

    4 Создание SQL-запросов
    4.1 Создание новой таблицы с использованием CREATE TABLE

    Используя инструкцию CREATE TABLE, создадим запрос на создание новой таблицы, содержащей пять полей различных типов данных, определив в запросе первичный ключ и проиндексировав соответствующие поля, используя предложение CONSTRAINT.

    В следующем запросе в примере 4.1 создается таблица «Оборудование» с ключевым полем «Код_оборудования».

    Пример 4.1

    CREATE TABLE Оборудование (

    Код_оборудования AUTOINCREMENT,

    Инвентарный_номер INTEGER,

    Наименование TEXT(255),

    Стоимость MONEY,

    Дата_ввода_в_эксплуатацию DATE,
    CONSTRAINT ind_1

    PRIMARY KEY (Код_оборудования));


    В результате выполнения этого запроса в БД СУБД MS Access будет создана таблица «Оборудование», представленная в схеме БД следующим образом (рисунок 4.1).

    На рисунке 4.2 таблица «Оборудование» представлена в режиме конструктора.




    4.2 Создание новой таблицы с использованием CREATE TABLE с внешним ключом

    Создадим запрос на создание еще одной таблицы, содержащей внешний ключ по отношению к первичному ключу предыдущей таблицы.

    В следующем запросе в примере 4.2 создается таблица «Списанное_оборудование» с внешним ключом «Код_оборудования», связанным с полем «Код_оборудования» в таблице «Оборудование» с каскадным обновлением связанных полей и каскадным удалением связанных записей в схеме БД.

    Ключевое поле пока что назначать не будем – это будет сделано отдельным запросом.

    Пример 4.2

    CREATE TABLE Списанное_оборудование (

    Код_списанного_оборудования AUTOINCREMENT,

    Код_оборудования INTEGER,

    Дата_списания DATE,
    CONSTRAINT ind_2

    UNIQUE (Код_оборудования),

    FOREIGN KEY (Код_оборудования)

    REFERENCES Оборудование (Код_оборудования)

    ON UPDATE CASCADE ON DELETE CASCADE);


    На рисунке 4.3 представлено, как выглядит часть схемы БД после создания новой таблицы. Как видим, все изменения отобразились.

    На рисунке 4.4 представлена информация о связи таблиц «Оборудование» и «Списанное_оборудование».


    4.3 Создание нового индекса с использованием CREATE INDEX

    Используя команду CREATE INDEX, создадим запрос на создание нового индекса, используя различные условия назначения индексов (IGNORE NULL, DISALLOW NULL, PRIMARY), а также типы сортировки.

    В примере 4.3 создается уникальный индекс, не допускающий ввод повторяющихся значений в поле «Инвентарный_номер» в таблице «Оборудование»:

    Пример 4.3

    CREATE UNIQUE INDEX ind_3 ON

    Оборудование (Инвентарный_номер DESC) WITH DISALLOW NULL;

    Ключевые слова DISALLOW NULL не позволяют добавлять в таблицу записи по оборудованию без обязательного ввода инвентарного номера. Зарезервированное слово DESC располагает элементы индекса в убывающем порядке.


    Результат создания индекса представлен на рисунке 4.5.
    В примере 4.4 создается неуникальный индекс с ключевыми словами IGNORE NULL, что позволяет добавлять в таблицу «Оборудование» записи без обязательного ввода стоимости оборудования:

    Пример 4.4

    CREATE INDEX ind_4 ON

    Оборудование (Стоимость) WITH IGNORE NULL;


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

    Теперь определим ключевое поле таблицы «Списанное_оборудование» – им будет поле «Код_списанного_оборудования».

    В примере 4.5 создается индекс с зарезервированным словом PRIMARY, что позволяет назначить индексированное поле ключом. Так как такой индекс по умолчанию является уникальным, зарезервированное слово UNIQUE можно опустить.

    Пример 4.5

    CREATE INDEX ind_5 ON

    Списанное_оборудование (Код_списанного_оборудования) WITH PRIMARY;

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




    4.4 Добавление записей с использованием INSERT INTO

    Используя команду INSERT INTO, создадим запросы на добавление группы записей (из дополнительной таблицы) и одной записи в существующую таблицу.


    Сначала добавим таблицу «Новое_оборудование» со следующими записями (рисунок 4.8):
    В следующем запросе в примере 4.6 выполняется добавление группы записей из дополнительной таблицы «Новое_оборудование» в таблицу «Оборудование».

    Пример 4.6

    INSERT INTO Оборудование (Инвентарный_номер, Наименование, Стоимость, Дата_ввода_в_эксплуатацию)

    SELECT [Новое_оборудование].Инвентарный_номер, [Новое_оборудование].Наименование, [Новое_оборудование].Стоимость, [Новое_оборудование].Дата_ввода_в_эксплуатацию

    FROM Новое_оборудование;


    На рисунке 4.9 представлено, как выглядела таблица «Оборудование» до добавления новых записей.

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

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

    Пример 4.7

    INSERT INTO Списанное_оборудование (Код_оборудования, Дата_списания)

    VALUES (6, '25.04.2018');


    На рисунке 4.11 представлено, как выглядела таблица «Списанное_оборудование» до добавления новой записи.


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

    4.5 Обновление данных с использованием UPDATE

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

    В следующем запросе в примере 4.8 сумма оклада по всем должностям из таблицы «Должности» увеличивается на 10%.

    Пример 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.


    написать администратору сайта