Создание запросов
ЛЕКЦИЯ 4. СОЗДАНИЕ ЗАПРОСОВ
Запрос по образцу – это интерактивное средство для выбора данных из одной или нескольких таблиц. Для создания запроса достаточно заполнить бланк запроса, который располагается в окне конструктора запросов.
Результат запроса называется выборкой. Выборка не сохраняется в вашей базе данных. Она создается заново при выполнении запроса и уничтожается при его закрытии.
Создание запросов с помощью мастера.
Для создания запроса с помощью мастера нужно:
1. Перейти во вкладку Запросы и выбрать кнопку Создать/Простой запрос;
2. Из предложенного списка выбрать нужные для запроса поля таблицы;
Рекомендуемые материалы
3. Выбрать тип запроса: подробный (вывод каждого поля, каждой записи) или итоговый. Во втором случае можно определить функции для подсчета итогов: SUM, AVG, MIN, MAX.
ПРЕИМУЩЕСТВОМ Мастера является возможность получения результата при минимуме значений о механизме его получения. Однако Мастер не позволяет задать условия выборки.
Окно Конструктора запросов
Для вызова конструктора ® Запросы/Создать/Конструктор.
Access предложит выбрать таблицу или запрос, на основе которого будет осуществляться выборка (нужно выбрать и Добавить).
Запрос 1: запрос на выборку. | |||
книга Фамилия Имя Отчество | |||
Поле | |||
Имя таблицы | |||
Сортировка | |||
Вывод на экран | | | |
Условия отбора | |||
или |
В бланке запроса каждая строка выполняет определенную функцию:
Поле. В этой строке помещаются те поля, используемые для создания запроса;
Имя таблицы – показывает, из какой таблицы выбрано данное поле;
Сортировка – указывает тип сортировки информации, возвращаемой в запросе (от А до Я или от Я до А);
Вывод на экран – определяет, выводить ли данное поле в результатах выборки;
Условия отбора – в этой строке задаются критерии поиска.
Добавление полей в бланк запроса
В MS Access существует два варианта выбора полей результирующей таблицы:
Для добавления полей можно:
1. Выбрать поле таблицы на схеме данных и дважды нажать кнопку мыши. Выбранное поле будет вставлено в следующий доступный столбец в строке Поле бланка запроса. В строке Имя таблицы – сразу же появится имя таблицы, и позиция Вывод на экран будет помечена.
Телефонно-адресная | ||||
Имя Отчество | ||||
Поле | Фамилия | |||
Имя таблицы | Телефон-Адрес | |||
Сортировка | ||||
Вывод на экран | | |||
2. Механизм перенести и оставить. То есть, в таблице в схеме данных выделить поле и мышью перетащить его в бланк запроса. Чтобы выделить несколько полей таблицы, используются клавиши Ctrl и Shift.
3. В некоторых случаях необходимо выбрать все поля исходной таблицы. Для этого можно использовать значок *, стоящий первым в списке полей таблицы. Его можно перетащить в бланк запроса любым из двух способов. При этом в строке Поле будет имя:
Тел-адр. книга.*. Что означает, что выбраны все поля таблицы.
У данного метода есть преимущество по сравнению с методом последствием перетаскивания всех полей таблицы в бланк запроса. Если в таблицу «Тел. - адр.кн.» вы добавите еще поле, то и в запросе оно будет присутствовать.
Для удаления:
отдельного поля из бланка запроса нужно выделить столбец и Delete.
всех полей – Правка/Очистить бланк.
Для сортировки результатов выборки нужно в бланке запроса в строке сортировка указать сортировки. Для сортировки по нескольким полям нужно, чтобы поля сортировки находились рядом последовательно.
Для запуска запроса применяется кнопка Запуск или кнопка Вид.
Данный запрос можно сохранить: (Файл/Сохр. Как экспорт/ в тек. Базе данных/Имя).
Например, бланк запроса, позволяющего показать всех клиентов, живущих в России, будет выглядеть следующим образом:
Поле | Фамилия | Имя | Страна |
Имя поля | Тел. адр. книга | Тел.-адр. книга | |
Сортировка | |||
Вывод на экран | Ö | Ö | Ö |
Условие отбора | «Россия» | ||
или |
Для задания в запросах сложных логических выражений в поле Условие отбора можно использовать Построитель выражений, поставив курсор в усл. отбора нужного поля).
Если в первом окне мы открываем папку Таблицы, то выводится весь список таблиц.
Таблицы
Заказы
Клиенты
Выделение имени любой из таблиц откроет в следующем окне список полей данной таблицы
Показать все заказы, которые были выполнены в ближайшие 10 дней:
Поле | Ф.И.О. | Заказано | Дата |
… | … | … | … |
between dateadd ("d"; -10; date ()) and date () |
Примеры задания условий в запросах:
- в первые пять дней любого месяца
- в последний день каждого месяца
| month ([Дата]) |
| 1 or 3 or 5 or 7 |
30 | 4 or 6… |
28 | 2 |
- right ([Код заказа], 2) = "99" - код заказа заканчивается на 99;
- left ([Телефон], 3) = 777 – начинается на 777;
- Len ([Фамилия]) > val (10) – фамилия > 10 символов;
- < date () – 20 – ранее, чем на 20 дней назад;
- Between dateadd ("d"; - 3; Date ()) and Date () - в ближайшие 3 дня
- Between date () and dateadd ("m"; 3; отобразить заказы, исполнение которых от текущей даты до 3-х месяцев вперед;
- Dateadd ("d"; 3; 01.01.99) – на 3 дня вперед;
- Dateadd ("d"; -3; 01.01.99) – вернет 31.12.98;
- Year ([Дата заказа]) = year (date) and month ([Дата заказа]) = month (date ());
- Dateadd ("m"; - 2; Date ()) – дата 22.12.00
- Dateadd ("d"; -17; Date ()) – 05.02.01.
Для полей, допускающих пустые значения:
is NULL - пустые поля;
is not NULL – те строки, в которых есть какие-либо значения.
Использование операторов or и and:
1) одно поле с or
Поле | Город |
… | … |
Усл. отбора | Москва |
Или | Украина |
2) одно поле с and
Поле | Город |
… | … |
Усл. отбора | "Москва" and "Днепропетровск" |
3) два поля с or:
Поле | Город | Страна |
… | … | … |
Усл. отбора | Днепропетровск | |
Или | Украина |
4) два поля с and:
Поле | Город | Страна |
… | … | … |
Усл. отбора | Днепропетровск | Украина |
5) три поля с and и or:
Поле | Город | Страна | Национальность |
… | … | … | … |
Усл. | Днепропетровск | Украина | |
Россия | Украинец |
Встроенные функции
Во втором окне открывается список категорий функции (Дата/Время, Финансовые, Математические и т.д.), а в третьем окне – список самих функций.
Вставить имена полей или функции в выражение можно двойным щелчком по их названиям или одинарным щелчком и кнопкой
Кроме условий в запросах можно (в запросах вычислить) задавать выражения полей.
Например, нам нужно создать поле, вычисляющее и выводящее на экран значение возраста клиентов. Тогда нам нужно установить курсор строку Поле свободного столбца бланка запроса и вызвать Построитель выражений:
Выражение 1: year (date ()) – year ([Дата рождения]);
Слово "Выражение 1" нужно заменить словом "Возраст", так как оно будет выводиться в качестве названия столбца.
Подсчитать сумму продажи:
Сумма: [Цена]&[Продано].
Лекция 5 - Магнитные захватные устройства - лекция, которая пользуется популярностью у тех, кто читал эту лекцию.
Для вычисляемых полей также можно задавать условия.
|
< 35 |
Для объединения значений нескольких текстовых полей (например, имени и фамилии, города и адреса) можно использовать конкатенацию (объединение) полей. Для этого в Заголовке нового поля через Построитель выражений следующее выражение:
Покупатели: [Фамилия]&[Имя]&[Отчество]