Лабораторная работа № 8. Добавление, изменение, удаление данных.
Отчеты
Здесь хотелось бы напомнить, что у оператора INSERT есть два варианта записи, первый из которых используется, когда нужно внести в базу заранее определенный набор значений, второй — если нужно вставить в таблицу результат выполнения некоторого запроса (как раз для этого случая подходит заготовка, сформированная Конструктором запросов). Начнем с первого варианта. Пусть в таблицу Book надо добавить… Читать ещё >
Лабораторная работа № 8. Добавление, изменение, удаление данных. Отчеты (реферат, курсовая, диплом, контрольная)
В данной лабораторной работе мы рассмотрим запросы на добавление, изменение и удаление данных. Также будет рассмотрена работа с еще одним типом объектов Access — отчетами, которые позволяют создать и оформить набор данных для вывода на печать.
Как вы уже знаете из теоретической части курса, для добавления, изменения и удаления записей в таблицах служат операторы SQL INSERT, UPDATE и DELETE соответственно. Рассмотрим создание таких запросов в конструкторе Access. На рис. П. 8.1 показаны кнопки панели инструментов Конструктора запросов, позволяющие создать заготовку для запроса соответствующего типа.
Рис. П. 8.1. Перекрестный запрос.
Начнем с запроса на добавление данных. При создании этого типа запроса Конструктор предложит выбрать таблицу, в которую будут добавляться записи, и создаст заготовку вида.
INSERT INTO Book.
SELECT;
Здесь хотелось бы напомнить, что у оператора INSERT есть два варианта записи, первый из которых используется, когда нужно внести в базу заранее определенный набор значений, второй — если нужно вставить в таблицу результат выполнения некоторого запроса (как раз для этого случая подходит заготовка, сформированная Конструктором запросов). Начнем с первого варианта. Пусть в таблицу Book надо добавить новую запись. Сделать это можно следующим образом:
INSERT INTO Book (Author, Title, Publisher, BookYear) VALUES ('Дейт К.', 'Введение в системы баз данных. 8-е издание', 'Издательский дом «Вильямс» ', 2005);
В данном запросе обратите внимание на перечень столбцов в скобках после названия таблицы. В том же порядке идут соответствующие значения после ключевого слова VALUES. Если столбцы после названия таблицы явно не указывать, то предполагается, что они идут, как в таблице. В примере пропущен столбец BookID, так как это столбец типа Счетчик и значение для него должно генерироваться автоматически.
Задание. Используя базу из файлов к лабораторной работе, напишите запрос, добавляющий новый статус «устарела» в таблицу BookStatus.
Рассмотрим теперь пример использования второго формата оператора INSERT. Пусть в таблицу Bookl нужно внести записи из таблицы Book о книгах, выпущенных после 2000 г. Текст запроса приведен ниже. Считаем, что в таблице Bookl, так же как и в Book, поле BookID имеет тип «счетчик» и генерирует значения автоматически, из-за чего идентификаторы изданий в таблицах Book и Bookl могут отличаться:
INSERT INTO Bookl (Author, Title, Publisher, BookYear) SELECT Author, Title, Publisher, BookYear.
FROM Book.
WHERE Book. BookYear>2000;
Задание. Напишите запрос, добавляющий в таблицу BookStatusI названия статусов книг из таблицы BookStatus.
Рассмотрим теперь запросы на обновление. В языке SQL обновление записей делается с помощью оператора UPDATE. Например, следующий запрос обновит значение года издания для книги с идентификатором 4:
UPDATE Book.
SET BookYear=2000.
WHERE BookID=4;
Если секция WHERE в запросе отсутствует, то обновлены будут все записи в таблице.
Задание. Напишите два запроса, первый из которых увеличивает год издания всех книг в таблице Bookl на 2, а второй изменяет в таблице BookStatusI название статуса с «устарела» на «обветшала» .
Перейдем теперь к удалению данных из таблиц. Если в окно Конструктора запросов добавить таблицу Book и выбрать тип запроса «удаление», то будет сформирована следующая заготовка:
DELETE *.
FROM Book;
Выполнение этого кода приведет к попытке удаления всех записей из таблицы Book. Здесь стоит отметить, что ограничение внешнего ключа не позволит удалить те записи, для которых есть связанные с ними в таблице BooklnLib (в Access удаление не оформляется как транзакция, поэтому часть записей этим запросом может быть удалена, часть — нет). Также надо отметить, что стандарт SQL не подразумевает указания столбцов после DELETE (в примере это «*» (звездочка), которую подставляет Конструктор) и код DELETE FROM Book; также будет корректен.
Если в запрос добавить секцию WHERE, то появляется возможность указать, какие именно записи удаляются. Например, следующий запрос удалит из таблицы Book запись со значением поля BookID, равным 6 (если такая запись в таблице имеется):
DELETE *.
FROM Book.
WHERE BooklD=6;
Задание. Напишите два запроса, первый из которых удаляет все записи из таблицы BookStatusI, а второй удаляет из таблицы BooklnLib записи об экземплярах книг, изданных издательством «Азбука» (подсказка: в секции WHERE можно использовать условие IN и подзапрос).
Отчеты в Access. Отчеты — это объекты БД Access, позволяющие выбрать из базы требуемую информацию и оформить ее в виде документа, который удобно будет просмотреть и напечатать. В отличие от форм, которые тоже предназначены для более удобного представления информации, отчеты не позволяют вводить и исправлять данные в таблицах. Отчет можно легко конвертировать и сохранить в формате Word, HTML, PDF и ряде других.
Отчеты, так же как и формы, могут включать заголовок, примечание (отображаются один раз вверху и внизу отчета соответственно), верхний и нижний колонтитулы (отображаются на каждой странице), область данных.
Создание простых отчетов с помощью мастера очень напоминает аналогичную операцию для форм.
Задание. Перейдите на вкладку Создание и с помощью Мастера создайте отчет, выводящий данные о книгах из таблицы Book. Данные должны быть сгруппированы по году выхода книги, а в рамках группы — отсортированы по названию.
Скорее всего, в построенном в Мастере отчете какие-то данные не будут помещаться в отведенные им рамки. Поэтому в конструкторе разместите элементы в области данных так, чтобы все надписи выводились полностью, а названия столбцов замените на русские.
В примечании отчета выведите надпись «Перечень книг в нашей библиотеке». В заголовок отчета добавьте какой-нибудь рисунок, например из файлов к лабораторной работе. Сделайте так, что после каждой группы книг, определяемой одним годом издания, шла черта, отделяющая данную группу от других.