- •Лабораторная работа № 1 Функции и режимы субд Access
- •Теоретические сведения
- •Основные функции субд Access
- •Основные режимы работы субд Access
- •Главное окно субд Access
- •Справочная система субд Access
- •Основные операции с базой данных и ее таблицами
- •Открытие, создание и закрытие базы данных
- •Создание, открытие, просмотр, печать и закрытие таблицы
- •Изменение данных в таблице и удаление таблицы
- •Использование запросов, форм, отчетов и страниц доступа к данным Запросы
- •Страницы доступа к данным
- •Лабораторное задание
- •Порядок выполнения лабораторной работы
- •Требования к отчету
- •Контрольные вопросы
- •Лабораторная работа № 2 Создание базы данных средствами субд Access
- •Теоретические сведения
- •Создание таблицы с использованием Мастера таблиц
- •Создание таблицы в режиме конструктора
- •Связывание таблиц
- •Ввод информации в таблицы
- •Лабораторное задание
- •Порядок выполнения лабораторной работы
- •Требования к отчету
- •Контрольные вопросы
- •Лабораторная работа № 3 Использование языка qbe для задания запросов к базе данных
- •Теоретические сведения
- •Создание и сохранение запроса
- •Добавление и удаление таблиц
- •Включение полей в запрос и их удаление из запроса
- •Выбор полей, отображаемых в таблице результатов
- •Выбор записей, включаемых в таблицу результатов
- •Выполнение запроса, просмотр и сортировка результатов
- •Формирование запросов к связанным таблицам
- •Итоговые запросы
- •Корректирующие запросы
- •Запрос на создание таблицы
- •Лабораторное задание
- •Порядок выполнения лабораторной работы
- •Требования к отчету
- •Контрольные вопросы
- •Лабораторная работа № 4 Создание форм и страниц доступа к данным средствами субд Access
- •Теоретические сведения
- •Создание и сохранение формы
- •Модификация формы в режиме конструктора
- •Создание многотабличной формы
- •Создание кнопочной формы
- •Создание страниц доступа к данным
- •Лабораторное задание
- •Порядок выполнения лабораторной работы
- •Требования к отчету
- •Контрольные вопросы
- •Лабораторная работа № 5 Создание отчетов средствами субд Access
- •Теоретические сведения
- •Структура отчета
- •Создание нового отчета
- •Создание сложных отчетов
- •Сохранение содержимого отчета
- •Корректировка формы отчета в режиме конструктора
- •Группировка и подведение итогов в отчетах с группировкой
- •Нумерация страниц и постраничный вывод групп записей
- •Создание отчетов анкетного типа и в виде этикеток
- •Лабораторное задание
- •Порядок выполнения лабораторной работы
- •Требования к отчету
- •Контрольные вопросы
- •Лабораторная работа № 6 Проектирование базы данных средствами программы eRwin
- •Теоретические сведения
- •Назначение, возможности и особенности программы eRwin
- •Использование программы eRwin
- •Лабораторное задание
- •Порядок выполнения лабораторной работы
- •Требования к отчету
- •Контрольные вопросы
- •Лабораторная работа № 7 Использование оператора select языка sql для доступа к базам данных Access
- •Теоретические сведения
- •Использование языка sql для выборки (чтения) данных
- •Отбор строк из таблиц
- •Where Скидка not between 5.00 and 10.00
- •Where Скидка is null
- •Where Скидка is not null
- •Составные условия поиска
- •Сортировка таблицы результатов запроса
- •Многотабличные запросы на чтение (соединения)
- •Итоговые запросы на чтение
- •Запросы с группировкой
- •Создание sql-запроса в Access
- •Лабораторное задание
- •Порядок выполнения лабораторной работы
- •Требования к отчету
- •Контрольные вопросы
- •Лабораторная работа № 8 Использование объединяющих и вложенных запросов и корректирующих операторов языка sql
- •Теоретические сведения
- •Объединение результатов нескольких запросов
- •Вложенные запросы на чтение
- •Условия поиска с вложенным запросом
- •Внесение изменений в базу данных
- •Лабораторное задание
- •Порядок выполнения лабораторной работы
- •Требования к отчету
- •Контрольные вопросы
- •Литература
- •Содержание
Лабораторная работа № 8 Использование объединяющих и вложенных запросов и корректирующих операторов языка sql
Цель работы: изучить возможности оператора UNION и вложенных запросов и получить практические навыки использования операторов языка SQL, изменяющих данные, хранящиеся в БД.
Продолжительность работы - 4 ч.
Теоретические сведения
Наряду с использованием многотабличных запросов язык SQL позволяет формировать таблицу результатов на основе данных, содержащихся в нескольких исходных таблицах, посредством объединения запросов или применения вложенных запросов..
Объединение результатов нескольких запросов
Язык SQL предусматривает возможность объединения результатов двух или более запросов в одну таблицу с помощью оператора UNION. Например, можно объединить результаты, выполнив следующий сложный оператор, и получить список сотрудников и клиентов из Москвы:
SELECT Фамилия + Имя, Должность FROM Сотрудники
WHERE Город = 'Москва'
UNION
SELECT ОбращатьсяК, Должность FROM Клиенты
WHERE Город = 'Москва'
Чтобы таблицы результатов запроса можно было объединить с помощью оператора UNION, они должны удовлетворять следующим требованиям:
1) таблицы должны содержать одинаковое число столбцов;
2) тип данных каждого столбца первой таблицы должен совпадать с типом данных соответствующего столбца во второй таблице;
3) ни одна из таблиц не может быть отсортирована с помощью предложения ORDER BY, однако объединенные результаты запроса можно отсортировать.
Имена столбцов в объединяемых таблицах не обязательно должны быть одинаковыми.
Поскольку оператор UNION объединяет строки из двух таблиц результатов, то вполне вероятно, что в объединенной таблице будут содержаться повторяющиеся строки. По умолчанию оператор UNION в процессе своего выполнения удаляет повторяющиеся строки.
Если в результирующей объединенной таблице необходимо сохранить повторяющиеся строки, сразу за ключевым словом UNION следует указать ключевое слово ALL.
Хотя использование предложения ORDER BY в составляющих операторах SELECT, оператор UNION, запрещено, но результирующую объединенную таблицу можно отсортировать, записав предложение ORDER BY за последним оператором SELECT. Поскольку столбцы в таблице результатов запроса на объединение не имеют имен, то в предложении ORDER BY следует указывать номера столбцов.
Оператор UNION можно использовать многократно, чтобы объединить результаты трех или более запросов, указывая с помощью круглых скобок порядок выполнения операторов:
SELECT * FROM A
UNION ALL (SELECT*FROM B UNION SELECT*FROM C)
Вложенные запросы на чтение
В языке SQL существует понятие вложенного запроса. Механизм вложенных запросов позволяет использовать результат одного запроса в качестве составной части другого запроса. Возможность применения одного запроса внутри другого и была причиной появления слова “структурированный” в названии языка SQL.
Вложенным, или подчиненным, запросом (подзапросом), называется запрос, содержащийся в списке возвращаемых столбцов или предложениях WHERE или HAVING другого оператора. Вложенные запросы позволяют естественным образом формулировать запросы, которые используют результаты других запросов.
Например, из учебной базы данных “Борей” можно определить, кто из сотрудников является самым молодым по возрасту:
SELECT Фамилия, ДатаРождения FROM Сотрудники WHERE ДатаРождения = (SELECT MAX(ДатаРождения) FROM Сотрудники)
Вложенный (внутренний) запрос, указанный в условии поиска предложения WHERE, вычисляет максимальную дату рождения сотрудника, а главный (внешний) запрос сравнивает дату рождения каждого сотрудника с вычисленной датой и, в зависимости от результата сравнения, либо добавляет сотрудника в таблицу результатов запроса, либо нет. Совокупно главный и вложенный запросы выражают исходный запрос и извлекают из БД требуемую информацию.
Вложенный запрос, или подзапрос, - это оператор SELECT, заключенный в круглые скобки. Между вложенным запросом и оператором SELECT имеется ряд отличий.
1. Таблица результатов вложенного запроса всегда состоит из одного столбца, т.е. список возвращаемых столбцов должен иметь только один элемент.
2. Во вложенный запрос не может входить предложение ORDER BY.
3. Вложенный запрос не может быть запросом на объединение нескольких различных операторов SELECT; допускается использование только одного оператора SELECT.
4. Имена столбцов, используемые во вложенном запросе, могут являться ссылками на столбцы таблиц главного (внешнего) запроса.
Чтобы проиллюстрировать последнее из перечисленных отличий, определим, кто из поставщиков одних товаров одновременно является клиентом, заказывающим другие товары. Таблица результатов формируется оператором
SELECT * FROM Поставщики
WHERE Название = (SELECT Название FROM Клиенты
WHERE Клиенты.Название = Поставщики.Название)
Столбец (или поле) Поставщики.Название во вложенном запросе является примером внешней ссылки. Внешняя ссылка представляет собой имя столбца, принадлежащего таблице, указанной в предложении FROM главного запроса, и не входящего ни в одну из таблиц, перечисленных в предложении FROM вложенного запроса.
Если во вложенном запросе имеется внешняя ссылка, то он называется связанным подзапросом. Особенностью связанного подзапроса является то, что он выполняется многократно, по одному разу для каждой строки таблицы, указанной в главном запросе.
Процедура выполнения связанного подзапроса состоит из следующих шагов:
1) выбрать строку из таблицы, имя которой указано в главном запросе; это текущая строка кандидат (в примере это строка таблицы ПОСТАВЩИКИ с полем “Название”);
2) выполнить вложенный запрос с учётом значений, содержащихся в текущей строке-кандидате (в примере это значение поля Поставщики.Название, в соответствии с которым из таблицы КЛИЕНТЫ выбирается название клиента);
3) вычислить условие поиска главного запроса с учётом результатов вложенного запроса, выполненного на шаге 2; если вычислено значение TRUE, то текущая строка-кандидат включается в таблицу результатов;
4) повторять шаги 1-3 для следующей строки-кандидата, пока не будут проверены все строки таблицы, указанной в главном запросе.
