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

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

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

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

Добавлен: 10.04.2024

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

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

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

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

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

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

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

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

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

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


Лабораторная работа № 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%.