Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Prakticheskie_zanyatia_po_MS_Access_7.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
142 Кб
Скачать
☆

Ограничение набора записей с использованием критерия отбора

Одна из главных целей применения запроса заключается в том, чтобы вернуть определенный набор записей, выбранных из всех записей источника. Для того чтобы сделать это, необходимо ограничить набор записей, указывая критерий отбора для определенных полей запроса. В Microsoft Access для ограничения количества записей, возвращаемых запросом, используется инструкция where. В следующем примере запрос вернет только те записи из таблицы Студент, для которых поле Проходной балл имеет значение, меньшее 4,5:

SELECT * FROM СТУДЕНТ WHERE ПБалл < 4.5;

Рассмотрим пример, в котором выбираются несколько полей из одной таблицы с несколькими условиями:

SELECT DISTINCTROW ПРЕДМЕТ.НП, ПРЕДМЕТ.ЧАСЫ, ПРЕДМЕТ.ЛЕК, ПРЕДМЕТ.ЧС FROM ПРЕДМЕТ

WHERE ((ПРЕДМЕТ.ЧАСЫ<=100) AND (ПРЕДМЕТ.ЛЕК<>0))

OR ((ПРЕДМЕТ.ЧАСЫ>150) AND (ПРЕДМЕТ.ЧС<3))

Предикат DISTINCTROW требует, чтобы Access не включал в таблицу запроса повторяющиеся записи. Вслед за этим перечисляются поля, которые надо включить в таблицу запроса. Предложение FROM определяет таблицы, которые служат источником данных для данного запроса. В предложении WHERE задаются условия отбора записей.

Обработка групп данных

Часто требуется сгруппировать информацию и получить другое поле (или Поля), основанное на данных группы. Например, можно подсчитать количество студентов в каждой группе. Для этого необходимо использовать инструкцию group by для разбиения таблицы СТУДЕНТ на группы по номерам групп и затем применить статистическую функцию count для подсчета количества студентов в каждой группе:

SELECT СТУДЕНТ.НГ,

Count (СТУДЕНТ.НГ) AS Count_НГ FROM СТУДЕНТ GROUP BY СТУДЕНТ.НГ

В инструкции SELECT определен вывод поля, по которому производится группировка, и поля по которому применяется функция Count. В данном примере это одно и тоже поле НГ. Кроме того, зарезервированное слово AS позволяет определить для поля с результатом вычисления функции псевдоним Count_НГ, который станет заголовком столбца вместо его исходного названия в таблице.

Microsoft Access поддерживает следующие функции для работы с группами:

sum - суммирует значения полей в группе.

avg - усредняет значение полей в группе.

count - подсчитывает количество записей в группе.

max, min - возвращают максимальное и минимальное значение в группе соответственно.

first, last - возвращают первое и последнее значение в группе соответственно.

stdev, var - возвращают среднеквадратичное отклонение от средней значения поля и дисперсию значений поля соответственно.

Использование соединений для связи записей

В Microsoft Access можно создавать запросы с соединением (equi-join), возвращающие только те записи из двух наборов записей, у которых совпадают значения определенных полей, или запросы с внешним соединением (outer join), которые возвращают записи с совпадающими значениями и, кроме того, возвращают все записи из одного из наборов записей, который включен в запрос. Следующий пример представляет собой запрос с соединением двух таблиц, использующий ключевые слова inner join:

SELECT СТУДЕНТ.НГ, СТУДЕНТ.НС, СТУДЕНТ.ФИО, УСПЕВАЕМОСТЬ.КП, УСПЕВАЕМОСТЬ.ТАБН, УСПЕВАЕМОСТЬ.ВИДЗ, УСПЕВАЕМОСТЬ.ОЦЕНКА

FROM СТУДЕНТ INNER JOIN УСПЕВАЕМОСТЬ ON (СТУДЕНТ.НС = УСПЕВАЕМОСТЬ.НС) AND (СТУДЕНТ.НГ = УСПЕВАЕМОСТЬ.НГ);

Внешние соединения создаются при помощи ключевых слов left JOIN и RIGHT JOIN. Операция left JOIN используется для создания левого внешнего объединения. Левое внешнее объединение включает все записи из первой (левой) таблицы, даже если нет совпадающих значений для записей из второй (правой) таблицы. Операция Right JOIN используется для создания правого внешнего объединения. Правое внешнее объединение включает все записи из второй (правой) таблицы, даже если нет совпадающих значений с записями из первой (левой) таблицы.

По мере того как запросы становятся сложнее, следует использовать графический интерфейс для их создания и тестирования. Не забывайте о том, что оператор SQL всегда можно скопировать, просматривая запрос в режиме SQL, и использовать его в программе.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]