
- •Лабораторные работы Лабораторная работа № 1 Анализ процедуры обработки события, формируемой мастером
- •Инструкции
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа № 2 Выполнение запросов в процедуре обработки события
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №3 Поиск данных с использованием индексов
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №4 Создание новой таблицы в базе данных
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №5 Фильтрация записей формы по значению, выбранному из списка другой формы
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №6 Создание таблицы и заполнение ее записями
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №7 Расчет в текущей записи однотабличной формы и обновление таблицы
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №10 Создание таблицы с помощью инструкции sql
- •Сортировка записей и ключевое слово order by
- •Ограничение набора записей с использованием критерия отбора
- •Обработка групп данных
- •Использование соединений для связи записей
- •Select студент.Нг, студент.Нс, студент.Фио, успеваемость.Кп, успеваемость.Табн, успеваемость.Видз, успеваемость.Оценка
- •Запросы на изменение
- •Откройте базу данных Учебный процесс.
- •Задание для самостоятельной работы
- •Используя инструкции sql, обеспечьте сортировку записей таблицы izd в базе данных Изделия в алфавитном порядке.
- •Используя форму sql базы данных Изделия, обеспечьте вывод только тех записей из таблицы отгрузка, для которых поле Количество отгружаемого товара имеет значение меньшее 60.
Использование соединений для связи записей
В Microsoft Access можно создавать запросы с соединением (equi-join), возвращающие только те записи из двух наборов записей, у которых совпадают значения определенных полей, или запросы с внешним соединением (outer join), которые возвращают записи с совпадающими значениями и, кроме того, возвращают все записи из одного из наборов записей, который включен в запрос. Следующий пример представляет собой запрос с соединением двух таблиц, использующий ключевые слова inner join:
Select студент.Нг, студент.Нс, студент.Фио, успеваемость.Кп, успеваемость.Табн, успеваемость.Видз, успеваемость.Оценка
FROM СТУДЕНТ INNER JOIN УСПЕВАЕМОСТЬ ON (СТУДЕНТ.НС = УСПЕВАЕМОСТЬ.НС) AND (СТУДЕНТ.НГ = УСПЕВАЕМОСТЬ.НГ);
Внешние соединения создаются при помощи ключевых слов left JOIN и RIGHT JOIN. Операция left JOIN используется для создания левого внешнего объединения. Левое внешнее объединение включает все записи из первой (левой) таблицы, даже если нет совпадающих значений для записей из второй (правой) таблицы. Операция Right JOIN используется для создания правого внешнего объединения. Правое внешнее объединение включает все записи из второй (правой) таблицы, даже если нет совпадающих значений с записями из первой (левой) таблицы.
По мере того как запросы становятся сложнее, следует использовать графический интерфейс для их создания и тестирования. Не забывайте о том, что оператор SQL всегда можно скопировать, просматривая запрос в режиме SQL, и использовать его в программе.
Запросы на изменение
Запросы на изменение (action queries) также представляют собой операторы SQL, генерируемые через графический интерфейс запроса в режиме конструктора. Ниже приведены некоторые примеры запросов на изменение.
1. Запрос на удаление:
DELETE СТУДЕНТ.* , ГРУППА.КОЛ
FROM ГРУППА INNER JOIN СТУДЕНТ
ON ГРУППА.НГ = СТУДЕНТ.НГ
WHERE (((ГРУППА.КОЛ)<5))
Инструкция DELETE удаляет из таблицы записи, удовлетворяющие условию отбора, заданному в условии WHERE. Для того чтобы указать, из какой именно таблицы должны быть удалены записи, в список полей включается конструкция имя_таблицы. * (СТУДЕНТ. *).
2. Запрос на обновление:
UPDATE СТУДЕНТ SET НГ = 101
WHERE Пбалл = 4.5
Инструкция UPDATE обновляет указанное в предложении SET поле НГ, присваивая значение 101 во всех записях, которые удовлетворяют условию отбора, заданному в предложении WHERE.
3. Запрос на вставку:
INSERT INTO УСПЕВАЕМОСТЬ ( НГ, НС, КП, ТАБН, ВИДЗ, ОЦЕНКА )
SELECT УСПВРЕМ. НГ, УСПВРЕМ. НС, УСПВРЕМ. КП, УСПВРЕМ.ТАБН,
УСПВРЕМ.ВИДЗ, УСПВРЕМ.ОЦЕНКА
FROM УСПВРЕМ
Инструкция INSERT INTO позволяет добавить записи в указанную таблицу УСПЕВАЕМОСТЬ. Число добавляемых записей определяется числом записей, возвращаемых используемой инструкцией SELECT. Списки имен полей и порядок их перечисления для таблицы УСПЕВАЕМОСТЬ, куда добавляются записи, и для таблицы, определяемой инструкцией выбора, должны совпадать.
4. Запрос на создание таблицы:
SELECT DISTINCTROW СТУДЕНТ.НГ, Count (СТУДЕНТ.НГ)
AS Count_НГ
INTO [Число студентов]
FROM СТУДЕНТ
GROUP BY СТУДЕНТ.НГ
Инструкция SELECT … INTO, как и инструкция SELECT, выполняет выборку данных, но в отличие от нее для сохранения выбранных данных создает новую таблицу, имя которой указывается в предложении INTO. Новая таблица включает перечисленные в SELECT поля из таблиц, указанных в предложении FROM. Допустимо использование предложения GROUP BY, определяющего поле группировки. При этом список полей новой таблицы должен включать поле, вычисляемого с помощью одной из статистических функций (в примере - Count). Если перед GROUP BY поместить предложение WHERE, тогда группы будут формироваться из записей, отобранных после применения WHERE.
Для проверки работоспособности операторов SQL выполните следующие действия: