Файл: Отчет по лабораторной работе 2 по дисциплине Базы данных.docx
Добавлен: 16.03.2024
Просмотров: 14
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное
учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра автоматизации обработки информации (АОИ)
СОЗДАНИЕ ЗАПРОСОВ В СУБД MS ACCESS
Отчет по лабораторной работе № 2 по дисциплине «Базы данных»
Вариант № 1
Выполнил:
студент гр. з-431П10-6
14 февраля 2023 г.
Проверил:
кандидат технических наук, доцент каф. АОИ
П. В. Сенченко
_________ 2023г.
Томск 2023
Оглавление
Введение 3
1 ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ 4
2 ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ 5
3 ХОД РАБОТЫ 7
Заключение 21
Список использованных источников 22
Введение
Целью данной лабораторной работы является создание запросов в среде MS Access.
1 ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ
Исходные данные для варианта № 1 - Библиотека
2 ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ
Основным объектом в БД является таблица, хранящая данные о том или ином предмете реального мира. Остальные типы объектов — это различные способы представления информации из таблиц (формы, отчеты,динамические наборы) или действия над таблицами (запросы, макросы,модули).
Запрос — это объект, позволяющий как извлекать данные из таблиц с использованием различных критериев, задаваемых пользователем, так и производить различные изменения в таблицах БД. С помощью запроса
можно выбрать, изменить или сгруппировать какие-либо данные, содержащиеся в одной или нескольких таблицах. Ответ на запрос также выглядит в виде таблицы и называется динамическим набором записей.
Форма — это объект, предназначенный для ввода, изменения и просмотра записей в удобном виде на экране. Форма может содержать данные
из одной или нескольких взаимосвязанных таблиц, а также не связанные
с таблицами данные. Для создания и изменения формы используется методика визуального программирования.
Отчет — это объект, предназначенный для печати данных в определенном пользователем виде. Отчет позволяет сгруппировать записи,
производить расчеты и выводить как промежуточные, так и полные итоговые значения.
Макрос — это набор из одной или нескольких макрокоманд, позволяющих производить различные операции с объектами БД. Например,
с помощью макроса при загрузке БД можно автоматически открыть нужные формы или при нажатии кнопки в форме выполнить различные действия (печать формы, открытие другой формы и т. п.). Макрокоманды выбираются из списка стандартных макрокоманд, например.
Модуль — это набор процедур и функций на языке Visual Basic. Модули обычно используют для создания достаточно сложных информационных систем. Каждый модуль может быть привязан к объектам форм и отчетам.
Каждый объект имеет структуру, характерную для его типа. Например, таблицы состоят из полей и записей. Формы и отчеты состоят из элементов управления, заголовка и др. Модули состоят из процедур и функций; макросы из макрокоманд. Многие из структурных элементов объектов также считаются объектами. Все объекты имеют уникальные имена. Имя объекта может состоять из 64 символов, включая пробелы и другие знаки, кроме символов точка (.), восклицательный знак (!), апостроф (‘), квадратные скобки [ ]. Рекомендуется не включать в имена объектов пробелы и избегать слишком длинных имен, что затрудняет программирование приложений.
Свойство представляет собой характеристику объекта, например
имя, размер, цвет, тип данных поля и т. п. Свойства текущего объекта сведены в таблицу и доступны для изменения в окне свойств, которое открывается при нажатии кнопки на панели инструментов. Набор свойств различен для каждого типа объектов.
Над любым объектом можно выполнить три стандартных действия (им соответствуют три кнопки в окне БД): открыть текущий объект для работы; создать новый объект текущего типа; изменить текущий объект (конструктор).
3 ХОД РАБОТЫ
Запрос на выборку. Соответствие «КодЭкземпляра» - «Название» с применением псевдонимов. Сортировка по возрастанию поля «КодЭкземпляра» (рисунок 3.1)
Рисунок 3.1 – Запрос на выборку
Результат запроса на выборку (рисунок 3.2)
Рисунок 3.2 – Результат запроса на выборку
Запрос на выборку с параметрами. Выберем все книги с кодом жанра 1 (рисунок 3.3)
Рисунок 3.3 – Результат запроса на выборку с параметрами
Запрос на обновление данных. В жизни нет необходимости менять номер на конкретную величину, однако в данном учебном примере запрос можно выполнить несколько раз и пронаблюдать за изменениями. В данном примере номер будет изменяться только у читателя(лей) с отчеством «Денисович» (рисунок 3.4)
Рисунок 3.4 –Запрос на обновление данных
Результат запроса на обновление данных (рисунок 3.5)
Рисунок 3.4 – Результат запроса на обновление данных
Запрос на удаление записи. Требуется ввести код читателя, после этого запись с указанным кодом будет удалена как из таблицы «Читатели», так и из таблицы «Выдачи» (рисунок 3.5)
Рисунок 3.5 – Запрос на удаление записи
Результат запроса на удаление записи с кодом читателя = 5 (рисунок 3.6)
Рисунок 3.6 – Результат запроса на удаление записи
Cсоздадим запрос на создание новой таблицы «Издательства» где будут два индекса: первичный ключ и номер телефона (рисунок 3.7)
Рисунок 3.7 – Запрос на создание новой таблицы
Создадим запрос на создание дополнительной таблицы где поле «КодИздательства» служит внешним ключом и ссылается на одноименное поле таблицы «Издательства» (рисунок 3.8)
Рисунок 3.8 – Запрос на создание дополнительной таблицы
Посмотрим связь на схеме данных (рисунок 3.9)
Рисунок 3.9 – Схема данных
Запросом
CREATE INDEX auto_i ON КнигиПоИздательству(Код) WITH PRIMARY ;
создадим индекс и увидим знак ключа на схеме (рисунок 3.10). В данном примере отсутствует необходимость указывать порядок возрастания «ASC» так как autoincrement указывает именно на такой порядок изменения значений данного поля
Рисунок 3.10 – Добавление индекса
Создадим таблицу «Таблица для заполнения Издательства» откуда будем считывать значения и заносить в таблицу «Издательства». Выполнив запрос «Запрос на INSERT»
INSERT INTO Издательства ( Наименование, НомерТелефона, Адрес, ДатаОснования )
SELECT Наименование,НомерТелефона,Адрес,ДатаОснования
FROM [Таблица для заполнения Издательства];
увидим данные в таблице «Издательства» (рисунок 3.11)
Рисунок 3.11 – Результат выполнения команды «INSERT»
Выполнив запрос «Запрос на INSERT в КнигиПоИздательству»
INSERT INTO КнигиПоИздательству ( КодИздательства, Наименование, Количество )
VALUES ('1', 'Три мушкетера', '50');
увидим данные в таблице.
Чтобы использовать команду «Update», для наглядности добавим еще одну запись:
INSERT INTO КнигиПоИздательству ( КодИздательства, Наименование, Количество )
VALUES ('2', 'Три мушкетера', '30');
после чего выполним запрос «Запрос на UPDATE»
UPDATE КнигиПоИздательству
SET Количество = Количество + 15;
увидим, что количество в обоих записях увеличилось на 15.
Составим запрос на выборку из двух таблиц по одинаковому ключу «КодЖанра» с порядком показа результата от большего к меньшему используя псевдонимы:
SELECT b.Название, j.НазваниеЖанра as Жанры
FROM Книги as b
INNER JOIN Жанры as j ON b.КодЖанра = j.КодЖанра
ORDER BY b.Название DESC;
и посмотрим результат (рисунок 3.12)
Рисунок 3.12 – Результат выполнения команды «SELECT» из двух таблиц
Создадим перекрестный запрос где в строках выведем наименование жанров, в столбцах кличество экземпляров по нименованию книги, а так же столбец «Всего», который содержит число всех(без привязки к названию) экземпляров книг данного жанра (рисунок 3.13)
Рисунок 3.13 – Перекрестный запрос
Посмотрим на результат выполнения перекрестного запроса
(рисунок 3.14)
Рисунок 3.14 – Результат выполнения перекрестного запроса
Составим запрос на удаление индекса (рисунок 3.15)
Рисунок 3.15– Запрос на удаление индекса
Результатом выполнения запроса, будет удаления индекса из таблицы «КнигиПоИздательству».
Составим запрос на удаление таблицы (рисунок 3.16)
Рисунок 3.16– Запрос на удаление таблицы
Результатом выполнения запроса, будет удаления таблицы «КнигиПоИздательству».
Создадим запрос на выборку с внешним соединением (рисунок 3.17). Представим, что в БД был добавлен автор Карлос Кастанеда и одно из его произведений «Сила безмолвия», однако жанр Эзотерика по каким-то причинам не существует в таблице Жанры. Используя левое внешнее соединение, мы извлечем абсолютно все записи из колонки «Название» даже если какой-либо из записей не будет сопоставлено значение жанра.
Рисунок 3.17– Запрос на выборку с внешним соединением
На рисунке 3.18 можно увидеть разницу выполнения внутреннего и внешнего соединения в запросе.
Рисунок 3.18– Внутреннее и внешнее соединение таблиц
Заключение
В ходе выполнения лабораторной работы был создан и выполнен ряд запросов к базе данных. Запросы были составлены при помощи построителя запросов, а также при посредством языка SQL.
Список использованных источников
1 Сенченко П.В. Организация баз данных : учеб. пособие / П. В. Сенченко. – Томск : ФДО, ТУСУР, 2015. – 168 с